我正在构建一个ruby脚本,屏幕上抓了很多项目获取其产品网址(超过200k项目)。现在我必须访问每个项目的页面并复制一些数据。
在代码和服务器方面,打开超过20万页的最佳做法是什么?除了代码,是否有任何特殊的服务器,我可以借用几个小时来运行我的脚本?
任何建议都会很精彩。 非常感谢队友。
答案 0 :(得分:2)
对于大多数抓取工具,由于大部分时间都在等待IO,因此您需要使用多线程或事件IO设置来提高吞吐量。在服务器方面,您只需要能够维持足够带宽的东西来满足您的所有请求而不需要限制;那里没什么特别的。
但是,您在此处面临的更大问题是,您应该非常确定自己是否尊重网站robots.txt
和/或请求率限制并适当限制您的请求;服务器几千个请求/秒是永久阻止IP的好方法。通常认为礼貌每秒绝对不超过1个请求,您应该解析目标网站的robots.txt,以查看允许抓取哪些网址以及抓取这些网址的速度。