gpt4 book ai didi

javascript - 无法使用 python selenium 获取生成的 html 源

转载 作者:行者123 更新时间:2023-12-03 04:29:06 25 4
gpt4 key购买 nike

我正在尝试下载以下网址的完全生成的 html 源文件:http://www.morningstar.com/funds/xnas/vinix/quote.html

我特别有兴趣提取表中“Performance VINIX”标题下生成的数字数据,例如“Growth in 10,000”行。我已经尝试过 this popular answer 中概述的方法。但保存的文本 html 文件看起来就像预先生成的原始源文件一样,包含所有 javascript,但没有生成的内容。例如,当我 grep 搜索“Growth”这个词时,我什么也没得到。

我还通过chrome web devtools中的DOM结构来识别包含该表的最内层元素,其xpath为/html/body,并使用find_element_by_xpath技术来隔离该元素,然后保存以下字符串对象:

content = browser.find_element_by_xpath('/html/body').text

但这仍然不起作用。知道为什么吗?非常感谢!

最佳答案

如果您想获得已经生成的表,您需要稍等一下,直到它出现在 DOM 中。另请注意,它位于 iframe 内部,因此您需要先切换到该框架,然后再搜索所需元素

from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait as wait

wait(browser, 20).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH, '//iframe[starts-with(@id, "QT_IFRAME_")]')))
table = wait(browser, 20).until(EC.presence_of_element_located((By.ID, "idPerformanceContent")))

然后您可以抓取所需的数据:

for i in table.find_elements_by_xpath('.//tr[td="Growth of 10,000"]/td')[1:]:
print(i.text)

关于javascript - 无法使用 python selenium 获取生成的 html 源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43568516/

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