【发布时间】:2021-07-19 06:51:14
【问题描述】:
我正在尝试从网站获取一些信息。 Web Inspector 显示 html 源代码,以及其中呈现的 JavaScript。所以我想用chromedriver来渲染它,目的是提取某些信息,这些信息不能通过简单的网站请求访问。
现在看起来令人困惑的是,即使是驱动程序也没有返回任何东西。 我的代码如下所示:
driver = webdriver.Chrome('path/Chromedriver')
driver.get(url)
soup = BeautifulSoup(driver.page_source, 'html.parser')
results = soup.find_all("tr", class_="odd")
网站是: https://www.amundietf.co.uk/professional/product/view/LU1681038243
当打开 Web Inspector 时,还有什么其他内容会呈现到 html 中,Chromedriver 无法处理吗?
提前感谢您的回答!
【问题讨论】:
-
您的代码没有问题。我已经执行了完全相同的代码并且能够提取 tr 行。
-
当我尝试打印这样的结果时,我只会得到空括号:
[] -
可能是网络延迟,请在 driver.get(url) 之后休眠或等待。您还看到浏览器上的详细信息页面吗?
-
@simpleApp 让程序休眠 3 秒会返回一些东西,但有没有办法在 python 中使用
await或类似的东西 -
它们更像是同步等待,其他一些测试框架支持等待角度或反应技术堆栈,但它们主要是在 Jave 脚本上。对于python,请参考selenium-python.readthedocs.io/waits.html
标签: python html selenium web-scraping webdriver