如何每n次迭代暂停一次屏幕抓取过程?

2024-06-17 10:33:06 发布

您现在位置:Python中文网/ 问答频道 /正文

python开发人员。我有一个概念性的问题。我正在编写一些屏幕抓取代码,从同一个网站检索数据,但是每次使用稍微不同的连接字符串对服务器进行5000次点击。我将其编写为多线程,这是我在python中首次使用线程。你知道吗

现在,它创建了100个线程并运行,但程序从未返回(我确实在模块末尾加入了线程)。当我只运行1000个查询时,它确实按预期运行,而且一切正常(返回结果)。超过1000个,我在控制台中看到最大重试错误数。所以我的问题是。。。你知道吗

在多线程上下文中,如何在继续之前在服务器上每1000次运行暂停一分钟?你知道吗

我不确定是否应该在模块中使用递增计数器,如果使用,是否需要用锁同步对它的访问?这是利用队列做得最好的事情吗?整个星期我都在断断续续地搜索这个应用程序的相关信息,而最好的概念性方法却让我不知所措。有什么想法吗?非常感谢。。。你知道吗


Tags: 模块数据字符串代码程序服务器屏幕开发人员
1条回答
网友
1楼 · 发布于 2024-06-17 10:33:06

保留一个nbThreads变量,该变量在每个创建的线程处增加,在每个线程进程结束时减少。你知道吗

while ...
  #Create 1000 threads
  while nbThreads >0:
    time.sleep(2)
  time.sleep(60)

您可以在thread类中添加一个超时,以确保所有线程都在一定时间后完成,或者截获超时并实际减少线程

相关问题 更多 >