我将rate定义为每单位时间的HTTP请求数。
我不知道我被阻止的时间(例如每天1000个请求)。我正在尝试为任何网址确定此费率。我怎么能做到这一点?我可以采用什么策略?
答案 0 :(得分:0)
这取决于您正在抓取的网站。有时它会在某处记录,但很可能不会。在这种情况下,API会更好。
因此,我建议您尝试进行试错,并为您的抓取添加一些停顿,并且不要让Scrapy运行得太快以至于不会被阻挡(或使用自定义刮刀,您可以将刮削速度限制在您的步伐不是Scrapy)。
答案 1 :(得分:0)
我建议你一个简单的PHP脚本:
<?php
$url='<site url>';
$page = file_get_contents($url);
mail('<your email>', "scrape {$url} response size = " . strlen($page) , '');
?>
将脚本设置为cron
以使用一天的初始最低费率运行。说,每20分钟一次。在一天内,它将运行24 * 60/20
= 72
(次)。
邮件将每隔20分钟发送给您,其中包含脚本抓取的网站大小。第二天你经常运行它(每15分钟一次),依此类推。
如果尺寸急剧变化(减少),你就会有刮擦阻塞的迹象。这将是近似的阻塞率。