我尝试使用开源crawler4j抓取mystore411.com上的网站。
爬虫在一段时间(例如20-30秒)内工作正常,然后网站禁止我的地址几分钟,然后再爬行。我无法找到可能的解决方案。
我浏览了它的robots.txt,这是我从中得到的:
User-agent: Mediapartners-Google
Disallow:
User-agent: *
Disallow: /js/
Disallow: /css/
Disallow: /images/
User-agent: Slurp
Crawl-delay: 1
User-agent: Baiduspider
Crawl-delay: 1
User-agent: MaxPointCrawler
Disallow: /
User-agent: YandexBot
Disallow: /
如果有替代品,请建议。
答案 0 :(得分:1)
我无法告诉你他们禁止你的确切原因。但我可以告诉你为什么知识产权被禁止的原因。
1)您在Crawl Controller代码中的礼貌延迟可能太低。
* Expalnation:- Politeness delay is the time that you set as the gap between two
consecutive requests. The more u reduce the delay the more no. of
requests will be send to the server increasing server work load. SO keep
an appropriate politeness delay.(default 250 ms, use this command
config.setPolitenessDelay(250);
2)减少号码。抓取线程
* Explanation:- Almost the same reason as above.
3)不要爬过机器人' s.txt
* Explanation:- Set your robottxtenable to false in order to not to get blocked by the
domain's robot's.txt.(config.setResumableCrawling(false);
4)尝试使用一个好的用户代理代理: -
* Exaplantion:- https://en.wikipedia.org/wiki/User_agent.