当循环抓取多个网站时,我注意到之间的速度存在相当大的差异,
sleep(10)
response = requests.get(url)
and,
response = requests.get(url, timeout=10)
那是,timeout
速度要快得多。
此外,对于这两种设置,我预计在请求下一页之前每页的抓取持续时间至少为 10 秒,但事实并非如此。
- 为什么速度会有这么大的差别呢?
- 为什么每页抓取时长不到10秒?
我现在使用多处理,但我认为记住上述内容也适用于非多处理。
time.sleep
停止你的脚本运行一定的秒数,而timeout
是检索 url 的最长时间等待时间。如果在之前检索到数据timeout
时间已到,剩余时间将被跳过。所以使用它可能需要不到 10 秒的时间timeout
.
time.sleep
不同的是,它会完全暂停您的脚本,直到它完成睡眠,然后它将再花几秒钟运行您的请求。所以time.sleep
每次都会花费10秒以上。
它们有非常不同的用途,但对于您的情况,您应该创建一个计时器,这样如果它在 10 秒之前完成,则让程序等待。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)