我正在创建一个新的网络爬虫使用C#来抓取一些特定的网站。一切都很顺利。但问题是,,一些网站是阻塞我的爬虫IP地址,后,一些请求。我试着在爬行请求之间使用时间戳。但没有起作用。
有没有办法阻止网站阻塞我的爬虫?有些类似的解决方案会有所帮助(但我需要知道如何应用它们):
任何解决办法都会有帮助。
发布于 2011-10-04 06:35:03
如果速度/吞吐量不是一个大问题,那么最好的解决方案可能是安装Tor和Privoxy并通过它路由您的爬虫。然后你的爬虫会有一个随机变化的IP地址。
这是一个非常有效的技术,如果你需要抓取网站,不希望你抓取他们。它还提供了一层保护/匿名,使你的爬虫的活动很难追溯到你。
当然,如果网站因为你的爬虫速度太快而阻塞了你的爬虫,那么也许你应该对它进行一些限制。
发布于 2013-01-08 11:31:42
这就是你如何阻止冒牌货(以防有人发现这页,同时搜索如何阻止那些)
在apache中阻止这个技巧:
# Block fake google when it's not coming from their IP range's
# (A fake googlebot) [F] => Failure
RewriteCond %{HTTP:X-FORWARDED-FOR} !^66\.249\.(6[4-9]|[78][0-9]|9[0-5])\.
RewriteCond %{HTTP_USER_AGENT} ^Mozilla/5\.0\ \(compatible;\ Googlebot/2\.[01];\ \+http://www\.google\.com/bot\.html\)$ [NC]
RewriteRule .* - [F,L]为了完整起见,在nginx中使用块
map_hash_bucket_size 1024;
map_hash_max_size 102400;
map $http_user_agent $is_bot {
default 0;
~(crawl|Googlebot|Slurp|spider|bingbot|tracker|click|parser|spider)$ 1;
}
geo $not_google {
default 1;
66.0.0.0/8 0;
}
map $http_user_agent $bots {
default 0;
~(?i)googlebot $not_google;
}https://stackoverflow.com/questions/7644036
复制相似问题