Python网络抓取:睡眠和请求之间的区别(页面,超时= x)

2024-02-24

当循环抓取多个网站时,我注意到之间的速度存在相当大的差异,

sleep(10)
response = requests.get(url)

and,

response = requests.get(url, timeout=10)

那是,timeout速度要快得多。

此外,对于这两种设置,我预计在请求下一页之前每页的抓取持续时间至少为 10 秒,但事实并非如此。

  1. 为什么速度会有这么大的差别呢?
  2. 为什么每页抓取时长不到10秒?

我现在使用多处理,但我认为记住上述内容也适用于非多处理。


time.sleep停止你的脚本运行一定的秒数,而timeout是检索 url 的最长时间等待时间。如果在之前检索到数据timeout时间已到,剩余时间将被跳过。所以使用它可能需要不到 10 秒的时间timeout.

time.sleep不同的是,它会完全暂停您的脚本,直到它完成睡眠,然后它将再花几秒钟运行您的请求。所以time.sleep每次都会花费10秒以上。

它们有非常不同的用途,但对于您的情况,您应该创建一个计时器,这样如果它在 10 秒之前完成,则让程序等待。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python网络抓取:睡眠和请求之间的区别(页面,超时= x) 的相关文章

随机推荐