首页 > 解决方案 > 为什么在抓取linkedin时网页没有加载?

问题描述

在这段代码中,我试图使用 Selenium 抓取 Linkedin 配置文件,但驱动程序无法加载我猜 IP 已被阻止的页面,而且我对代理旋转的概念或在这种情况下使用的任何概念不熟悉。如果您能帮助我了解这是如何完成的,那将是一个很大的帮助。

from selenium import webdriver
import time
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome(executable_path=r'C:\Users\chromedriver.exe')


def linkedin_login():
    global driver
    options = webdriver.ChromeOptions()
    options.add_argument("start-maximized")
    options.add_experimental_option('excludeswitches', ['enable-automation'])
    options.add_experimental_option("detach", True)

    try:
        driver.get('https://www.linkedin.com/login')

        username = 'username'
        password = 'password'
    
        WebDriverWait(driver, 30).until(EC.element_to_be_clickable((By.ID, 'username'))).send_keys(username)
        driver.find_element_by_id('password').send_keys(password)
        driver.find_element_by_class_name('btn__primary--large from__button--floating').click()
        time.sleep(8)
    except ImportError:
        print('Closing')

def search_profiles():
   search_profile = input('What profile do you want to search?')
   search_profile = search_profile.split()
   search = search_profile[0] + "%20" + search_profile[1]

在此处输入图像描述

标签: pythonseleniumweb-scrapingproxy

解决方案


“登录”按钮的类名不正确,特别是缺少一个点(。)

代替:

driver.find_element_by_class_name('btn__primary--large from__button--floating').click()

利用:

driver.find_element_by_class_name('btn__primary--large.from__button--floating').click()

这将单击按钮。

此外,如果您运行共享的代码,您正在调用 webdriver,但不会调用您的函数。

我测试了以下代码并且工作正常(请记住更新您的路径和 LinkedIn 凭据):

from selenium import webdriver
import time
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Chrome(executable_path='/home/armentaahumada/Downloads/chromedriver')


def linkedin_login():
    global driver
    options = webdriver.ChromeOptions()
    options.add_argument("start-maximized")
    options.add_experimental_option('excludeswitches', ['enable-automation'])
    options.add_experimental_option("detach", True)

    try:
        driver.get('https://www.linkedin.com/login')

        username = 'username'
        password = 'password'
    
        WebDriverWait(driver, 30).until(EC.element_to_be_clickable((By.ID, 'username'))).send_keys(username)
        driver.find_element_by_id('password').send_keys(password)
        driver.find_element_by_class_name('btn__primary--large.from__button--floating').click()
        time.sleep(8)
    except ImportError:
        print('Closing')

def search_profiles():
   search_profile = input('What profile do you want to search?')
   search_profile = search_profile.split()
   search = search_profile[0] + "%20" + search_profile[1]

linkedin_login()

推荐阅读