如何使用 Python Selenium Chrome 驱动程序抓取每个特定时间量?

问题描述 投票:0回答:1

情况:有一个网站要求我每x秒从中抓取信息。该网站有需要我输入的信息,因此我决定使用 Selenium。操作流程如下所示:用户可以单击浏览器部分或与网站交互,Selenium 浏览器将每 x 秒抓取一条特定信息。

我尝试过什么?:

  • driver.wait(对于任何类型的元素或特定时间);不幸的是,这不起作用,因为我没有浏览器应等待的特定元素。
  • time.sleep(0.5) 在 while True 循环中;这不起作用,因为抓取和处理部分(可能同时运行)也需要时间,这个 time.sleep(0.5) 可能会关闭几秒钟。
  • 我考虑创建一个 Google Chrome 插件,它可以执行操作并将该信息发送到负责的 Python 脚本,尽管这超出了它应有的努力,因此我决定反对它。

总而言之,如何每隔固定时间从 Selenium Chrome 驱动程序会话中抓取信息?

python google-chrome selenium-webdriver web-scraping
1个回答
0
投票

您只需等待开始和结束时间之间的差异即可。您还需要确保您的时间大于您的程序所需的时间。这里使用了 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)
© www.soinside.com 2019 - 2024. All rights reserved.