gpt4 book ai didi

python - 无法从网页获取动态生成的内容

转载 作者:行者123 更新时间:2023-11-28 21:36:18 25 4
gpt4 key购买 nike

我用python编写了一个脚本,使用selenium获取位于页面右下角标题business summary下的p(位于Company profile标记内)。网页是高度动态的,所以我想使用浏览器模拟器。我已经创建了一个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()

最佳答案

最初似乎没有业务摘要块,但它是在您向下滚动页面后生成的。尝试以下解决方案:

from selenium.webdriver.common.keys import Keys

def get_information(driver, url):
driver.get(url)
driver.find_element_by_tag_name("body").send_keys(Keys.END)
item = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "[id$='-QuoteModule'] p[class^='businessSummary']")))
print(item.text)

关于python - 无法从网页获取动态生成的内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51233325/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com