我正在构建一个基于python的网络爬虫,该爬虫从多个站点抓取产品的价格和规格数据。我要尊重他人,并尽可能多地关注robots.txt。
可以说,robots.txt文件中定义的抓取延迟为10秒。如何解释?我构建了刮板,以转到每个产品类别页面,然后获取每个类别中所有产品的列表,然后进入每个单独的产品页面,然后抓取价格和规格。
每个页面请求是否需要延迟10秒?还是运行脚本的行为曾经被视为一项操作,而我每次运行只需等待10s?
如果是前者,那么有人如何从站点中抓取大量数据?如果有5000个产品页面,而我将每个页面延迟10秒,那么我的脚本将需要14个小时才能运行一次。
如果我将工作分割成多个脚本怎么办?是每个单独的脚本都需要自己遵循规则,还是某个IP的所有请求都需要共同遵循该规则?
我不想禁止我的IP或意外删除任何人的站点。预先感谢您提供任何答案。
答案 0 :(得分:0)
欢迎使用堆栈溢出。
这意味着您应该在对该特定站点的每个请求之间放置10秒的延迟。有关更多信息,您可以阅读本文
https://www.contentkingapp.com/academy/robotstxt/#crawl-delay
最好,您应使用某种框架来抓取网站,例如scrapy。它们为您提供了下载延迟选项,并确保抓取引擎将每个请求延迟那么多时间。