【发布时间】:2021-10-09 22:56:27
【问题描述】:
我正在尝试从网站上抓取预订数据。进入网站后,我必须:
- 将默认日期范围(起初,网站显示默认日期范围的预订数据)更改为我要搜索的日期范围
- 点击“刷新”按钮
- 等待网站更新页面上显示的结果。
使用 Selenium、Python 和 BeautifulSoup,当我执行 Selenium 命令更新日期范围的字段并单击“刷新”按钮时,当代码到达我使用 BeautifulSoup 提取 HTML 数据的行时,提取的是默认网站日期范围的默认预订数据,而不是我填写的日期范围的预订数据。
根据观察,使用 Selenium 时该网站的移动速度似乎过快,无法提取更新的数据,这需要一些时间来加载。我尝试使用driver.implicitly_wait(5) 解决此问题,但这会返回高度不一致的结果。
我想检测一个允许稳定提取且没有错误的 HTML 元素。我意识到,当我单击“刷新”按钮时,这个特定元素...
<div id="textArea" style="visibility: visible; display: block;">
...更改为...
<div id="textArea" style="visibility: hidden; display: block;">
... 并变回 ...
<div id="textArea" style="visibility: visible; display: block;">
...当页面上的预订数据更新时。
是否有一个 Selenium 命令可以在进入我的 Python 代码的下一行之前检测到这种变化?例如,单击“刷新”按钮后,“等到 style=visibility 可见”命令?
【问题讨论】:
标签: python html selenium selenium-webdriver