【问题标题】:Job scheduling for data scraping on PythonPython上数据抓取的作业调度
【发布时间】:2023-04-07 07:17:01
【问题描述】:

我正在从某个网站抓取(提取)数据。数据包含我需要的两个值,即(网格)频率值时间

网站上的数据每秒都在更新。我想使用 python 将这些值(附加)连续保存到列表或元组中。为此,我尝试使用 schedule 库。以下作业调度命令每秒运行一次数据抓取功能(socket_freq)。

import schedule
schedule.every(1).seconds.do(socket_freq)

while True:
    schedule.run_pending()

我面临两个问题:

  1. 我不知道如何限制计划在选定的时间间隔内运行。例如,我想运行 5 或 10 分钟。我该如何定义?我的意思是如何告诉日程安排在特定时间后停止。
  2. 如果我运行这段代码并在几秒钟后停止它(使用 break),那么我经常会得到多个条目,例如这里是一个结果,其中元组中的第一个 list[] 指的是时间值,第二个list[ ] 是频率的值:

出来:

(['19:27:02','19:27:02','19:27:02','19:27:03','19:27:03','19:27:03','19:27:03','19:27:03','19:27:03','19:27:03','19:27:04','19:27:04','19:27:04', ...], 
['50.020','50.020','50.020','50.018','50.018','50.018','50.018','50.018','50.018','50.018','50.017','50.017','50.017'...])

如您所见,时间变量被多次输入(附加),尽管我使用了每 1 秒运行一次的计划。我实际上希望检索的是:

出来:

(['19:27:02','19:27:03','19:27:04'],['50.020','50.018','50.017'])

有人知道如何解决这些问题吗?

谢谢!

(我使用的是 python 2.7.9)

【问题讨论】:

    标签:
    python
    web-scraping
    scheduler