网站漂浮特效怎么做,云南城市建设职业学院spoc网站,推广新网站,怎么做搜索网站前言:
CONCURRENT_REQUESTS 32 # 设置请求并发数
DOWNLOAD_TIMEOUT 5 # 设置超时时间为5秒
RETRY_TIMES 2 # 设置你想要的重试次数
DOWNLOAD_DELAY 0.1 # 控制两个连续请求之间的延迟时间#xff0c;设置为0.1表示每次请求之间的等待时间为0.1秒
CONCURRENT_REQUESTS_…前言:
CONCURRENT_REQUESTS 32 # 设置请求并发数
DOWNLOAD_TIMEOUT 5 # 设置超时时间为5秒
RETRY_TIMES 2 # 设置你想要的重试次数
DOWNLOAD_DELAY 0.1 # 控制两个连续请求之间的延迟时间设置为0.1表示每次请求之间的等待时间为0.1秒
CONCURRENT_REQUESTS_PER_DOMAIN 20 # 每个域名的并发请求数设置为3表示同时只能有3个请求发送到同一个域名。
CONCURRENT_REQUESTS_PER_IP 2 # 每个IP的并发请求数控制在同一时间向同一个IP地址发送的并发请求数量
前面章节没有详细讲述这些看似简单的参数的调整方法导致这些参数的作用没有得到充分发挥。就像在王者荣耀中吕布的技能一挥、一吸和一跳看似简单但在实际运用中如何使技能,才能够让你的队友打出一波666?
因此在本章中我将充当一个Scrapy参数技能教官的角色带你把这个设置(技能)给他嚼透了,让你的项目666。
正文:
问题思考:
CONCURRENT_REQUESTS和CONCURRENT_REQUESTS_PER_DOMAIN参数在Scrapy中扮演着什么角色为什么要区分全局和局部的并发请求数如果将CONCURRENT_REQUESTS_PER_DOMAIN设置得过高会出现什么问题如何合理设置该参数以避免被目标网站封禁RETRY_TIMES参数控制爬虫的重试次数。在网络不稳定或请求频率过高的情况下如何合理设置重试次数以确保爬取的数据完整性和稳定性DOWNLOAD_DELAY参数用于控制连续请求之间的延迟时间。当请求速度过快时可能会对目标网站造成压力甚至被封禁。如何根据目标网站的反爬策略合理设置该参数CONCURRENT_REQUESTS_PER_IP参数用于控制同时向同一IP地址发送的并发请求数量。为什么要限制并发请求数以及合理设置该参数的依据是什么在设置DOWNLOAD_DELAY时应注意哪些因素如何在单机调试和实际生产环境中合理设置DOWNLOAD_DELAY值
解决复盘:
这些参数和我们设置的CONCURRENT_REQUESTS调整全局的并且整个Scrapy项目都遵循这个最高限制以及CONCURRENT_REQUESTS_PER_DOMAIN同一个域名的并发最高限制有关举个例子假设在你的Scrapy项目中需要分别对百度/B站/抖音三个网站发起请求然后
CONCURRENT_REQUESTS 32 CONCURRENT_REQUESTS_PER_DOMAIN 8
那么最高并发数是8*3域名数 24个并不是32个——这一点需要你明确。
所以即使你把CONCURRENT_REQUESTS调节到100也不会有太大影响因为整个项目的最高并发是24个
有些人可能会将全局设置为30局部域名设置为10达到了最高限制...
然而他们没有考虑到其他问题比如重试/异常/超时。
重试次数RETRY_TIMES 异常抛出根据自己的代码设置 超时DOWNLOAD_TIMEOUT
当程序正常运行时我们的并发量已经达到了最高限制30/10。但一旦出现重试/异常/超时的情况就需要新的线路进行请求。这时候我们的程序已经达到负荷极限应该如何完成由超时/异常引发的重试任务呢
因此在设置局部并发数时不要将其与全局并发数设置得一样要留出一些余量以便将重试请求分配到全局中的空闲线路上。
这时候我们可以有更好的设置方式全局36/局部10 —— 留出6个空闲线路以备突发事件。
......(当你明确理解了上述问题请继续阅读以下内容)
你理解了余量就可以理解CONCURRENT_REQUESTS_PER_IP了
接下来还是以前面的案例为例假设我每次通过API请求代理IP的数量设置是多少比较合适呢
如果你的最高请求数是30那你的IP池最好保持在35-40个左右也就是说每次通过API请求这个数量因为很多网站对同一个IP同时请求的次数有限制稍微错开时间即可。因此个人建议将CONCURRENT_REQUESTS_PER_IP设置为1。
这样设置后你可以同时发起最高30个请求并使用额外的5-10个IP填充到全局空闲线路中。这样你的程序只要其他逻辑没有问题速度就是每次30个请求多出来的空余线路用于后续请求和维护程序运行流畅且高效。
对于DOWNLOAD_DELAY这个值在单机调试时建议将其调高例如设置为3秒基本延迟在使用代理IP后可以将其设置为0或0.1秒。你也可以设置DOWNLOAD_DELAY为(2.5, 3)这样的浮动范围不至于卡死在3秒避免被网站检测到。
总结:
根据以上内容你是否能够理解这些参数的重要性以及如何进行设置了呢可以拿自己的项目试试新技能,一起上分吧!