【发布时间】:2018-12-16 09:59:25
【问题描述】:
我使用 selenium 在 python 中编写了一个脚本来获取位于网页右下角标题 Company profile 下的 business summary(位于 p 标记内)。该网页是动态的,所以我想使用浏览器模拟器。我创建了一个 css 选择器,如果我直接从该网页复制 html elements 并在本地尝试,它能够解析摘要。出于某种原因,当我在下面的脚本中尝试相同的选择器时,它不起作用。它会抛出 timeout exception 错误。如何获取?
这是我的尝试:
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
link = "https://in.finance.yahoo.com/quote/AAPL?p=AAPL"
def get_information(driver, url):
driver.get(url)
item = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "[id$='-QuoteModule'] p[class^='businessSummary']")))
driver.execute_script("arguments[0].scrollIntoView();", item)
print(item.text)
if __name__ == "__main__":
driver = webdriver.Chrome()
wait = WebDriverWait(driver, 20)
try:
get_information(driver,link)
finally:
driver.quit()
【问题讨论】:
标签: python python-3.x selenium selenium-webdriver web-scraping