web-crawler - 网络爬虫 http 请求的正确礼仪

标签 web-crawler

我有一个简单的网络爬虫,可以从网站的站点地图中请求我需要缓存和索引的所有页面。在多次请求之后,该网站开始提供空白页面。

他们的 robots.txt 中没有任何内容除了指向他们的站点地图的链接,所以我认为我没有违反他们的“规则”。我有一个描述性标题,可以准确链接到我的意图,并且我抓取的唯一页面来自他们的站点地图。

http 状态码都还可以,所以我只能想象它们在短时间内阻止了大量的 http 请求。请求之间的合理延迟量是多少?

是否还有其他我忽略的可能导致此问题的注意事项?

最佳答案

每个站点都有不同的爬虫和它寻找的滥用特征。

任何爬虫的关键是模仿人类事件,并遵守 robots.txt。

详尽的爬网会绊倒一些网站,无论你走多慢,它们都会让你关闭,而一些主机不介意爬虫快速拉动并一次性吸走所有内容。

  • 通常,您不希望请求页面的速度超过每分钟 6 个(大约人类速度)。
  • 按照网页上的可见性顺序,您会更安全地跟随链接。
  • 尝试忽略网页上不可见的链接(很多人使用蜜 jar )。

  • 如果一切都失败了,请求的速度不要超过每分钟一页。如果网站以这种速度阻止您,请直接与他们联系 - 他们显然不希望您以这种方式使用他们的内容。

    关于web-crawler - 网络爬虫 http 请求的正确礼仪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/798695/

    相关文章:

    java - HTML 混合编码?

    python - Scrapy和 Selenium : How to call a method in a loop

    hadoop - 如何在伪分布式安装的Hadoop中运行Nutch

    Python:列出没有索引的网站的所有URL

    javascript - 是否存在一种让爬虫忽略部分文档的方法?

    Python Scrapy - 从 mysql 填充 start_urls

    python - 用于网络抓取的旋转代理

    safari - Applescript:Safari 无法保存网页(AppleEvent 处理程序失败错误)

    ruby ,Mongodb, Anemone : web crawler with possible memory leak?

    python - 如何制作可以下载带有各自URL的图像的图像爬虫