如何解决如何使用Python Selenium Chrome驱动程序抓取每个特定的时间量?
情况:有一个网站要求我每隔x秒从其中抓取一次信息。该站点包含需要我输入的信息,因此我决定使用Selenium。操作流程如下所示:用户可以单击浏览器部分或与网站进行交互,Selenium浏览器将每x秒抓取一条特定的信息。
我尝试了什么?:
- driver.wait(用于任何类型的元素或特定时间);不幸的是,这没有用,因为我没有浏览器要等待的特定元素。 True循环中的
- time.sleep(0.5);这不起作用,因为抓取和处理部分(可能同时运行)也花了一些时间,这次。sleep(0.5)可能会关闭几秒钟。
- 我试图创建一个Google Chrome插件,该插件可以执行操作并将该信息发送到负责的Python脚本,尽管这超出了应有的努力,所以我决定反对。
总结,我如何每隔固定的时间从Selenium Chrome驱动程序会话中抓取信息?
解决方法
您可以简单地等待开始和结束之间的时间差。您还需要确保您所花费的时间大于程序花费的时间。在这里使用5,因此如果您的程序需要1秒钟才能运行,则等待5-1 = 4秒。确实会得到浮动值的差异,因此您可以切换到int并进行0-1秒的检查。
import time
while True:
now = time.time()
time.sleep(1)
later = time.time()
difference = (later - now)
print(difference)
driver.implicitly_wait(5-difference)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。