import os
from selenium import webdriver
import time
from linkedin_scraper import actions
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.common.exceptions import TimeoutException
from selenium.webdriver.chrome.options import Options
chrome_options = Options()
chrome_options.add_argument("--headless")
driver = webdriver.Chrome("driver/chromedriver", options=chrome_options)
email = os.getenv("LINKEDIN_USER")
password = os.getenv("LINKEDIN_PASSWORD")
actions.login(driver, email, password) # if email and password isnt given, it'll prompt in terminal
driver.get('https://www.linkedin.com/company/biorasi-llc/about/')
_ = WebDriverWait(driver, 3).until(EC.presence_of_all_elements_located((By.TAG_NAME, 'section')))
time.sleep(3)
grid = driver.find_elements_by_tag_name("section")[3]
about_us = grid.find_elements_by_tag_name("p")[0].text.strip()
print(about_us)
这是我用于抓取公司 about_us 数据的代码,它可以工作,但有时我会收到如下错误:
TimeoutException Traceback(最近一次调用最后一次)在
17 email = os.getenv("LINKEDIN_USER")
18 password = os.getenv("LINKEDIN_PASSWORD")
---> 19 actions.login(driver, email, password) # 如果没有给出邮箱和密码,会在终端提示
20 driver.get('https://www.linkedin.com/company/biorasi-llc/about/')
21 _ = WebDriverWait(driver, 3).until(EC.presence_of_all_elements_located((By.TAG_NAME, 'section')))
~\Anaconda3\lib\site-packages\linkedin_scraper\actions.py 登录(驱动程序,电子邮件,密码)
28 password_elem.submit()
29
---> 30 element = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.ID, "profile-nav-item")))
~\Anaconda3\lib\site-packages\selenium\webdriver\support\wait.py in until(self, method, message)
78 if time.time() > end_time:
79 break
---> 80 raise TimeoutException(message, screen, stacktrace) 81 82 def until_not(self, method, message=''):
超时异常:消息:
有人,请帮助如何解决这个问题。