PHP使用仅在提交表单后返回值的cURL在网站上刮取多个页面

PHP使用仅在提交表单后返回值的cURL在网站上刮取多个页面,php,curl,Php,Curl,一个网站有250种产品,我需要得到这些产品的数量。问题是除非我提交表格,否则数量不会显示。现在我可以提交该表格了,但问题是,在10-20个产品报废后,该网站会返回以下信息,这就像是一个瓶颈: Sorry, we have too many customers, please come back later. 所以基本上很明显我发送了太多的请求。但是如果我在请求之间使用usleep,则刮取的时间大约为15分钟……我猜服务器正在延迟对我请求的答复 所以基本上我的问题是:我能做什么来提交表格而不被阻

一个网站有250种产品,我需要得到这些产品的数量。问题是除非我提交表格,否则数量不会显示。现在我可以提交该表格了,但问题是,在10-20个产品报废后,该网站会返回以下信息,这就像是一个瓶颈:

Sorry, we have too many customers, please come back later.
所以基本上很明显我发送了太多的请求。但是如果我在请求之间使用
usleep
,则刮取的时间大约为15分钟……我猜服务器正在延迟对我请求的答复

所以基本上我的问题是:我能做什么来提交表格而不被阻止或延迟

所以基本上我的问题是:我能做什么来提交表格而不被阻止或延迟


拥有您自己的所有产品的本地缓存副本,并拥有一个守护进程或cronjob,该守护进程或cronjob不断(但缓慢)更新您自己的本地缓存,这将使您的缓存尽可能接近最新,而不会达到速率限制。当您需要快速检查所有250种产品时,请使用您自己的本地缓存,而不是实时版本。PS:速率限制可能是基于每个ip的,如果1 ip的更新速度不够,您可以继续为缓存更新程序添加更多ip,直到缓存更新速度可以接受。。(…如果你正在寻找一个便宜的地方来获得更多的IP,我可以推荐——或者如果你正在寻找免费的东西,你可以试试torproject——但是许多网站会阻止退出节点)

制作一个cron作业,每15分钟处理一次下一个产品。但是如果你想处理他的数据,向网站所有者索要api会更容易。我不会接受,太保守了,关于我能做什么的任何其他想法?(我还需要每小时重新扫描一次产品,这样每15分钟一次就不行了:(这可能是因为他们在表单中使用了cookie之类的东西或一些隐藏字段以及他们检查的值,您可以在http请求和响应中挖掘更多信息,以了解他们如何检测您的请求。