【问题标题】:How to deal with massive web scraping requests如何处理大量的网络抓取请求
【发布时间】:2018-12-09 05:21:05
【问题描述】:

当我们的网页被许多客户抓取时,我们的服务器承受着巨大的压力。有时我们的网页会从许多不同的 IP 地址中抓取,这些 IP 地址不属于 Google、Bing 等一些著名的蜘蛛。所以我们基于IP地址的防御策略是没有用的。我们希望我们的某些网页能够被正常蜘蛛以适当的频率抓取,但我们反对任何可能对我们的服务器造成损害的人。缓存可能是一种选择。但是我们有很多用于 seo 的 url。例如,我们有一些具有“https://www.xxxx.com/hot-goods/mobile-phone-1.html”模式的网址。此页面显示有关手机的产品列表。单个搜索词的搜索结果有数千页。所以缓存的命中率可能不是很高。所以我只是想知道是否有任何其他解决方案可以减轻我们服务器的压力。

【问题讨论】:

  • 你想首先允许抓取吗?我要做的第一件事是通过用户代理阻止最严重的违规者
  • @Joni 我不想让非蜘蛛客户抓取。基于用户代理的策略不是一个好的解决方案,因为它可以被很多http客户端工具修改。
  • 可能使用验证码会对您有所帮助。有关更多详细信息,请参阅此stackoverflow.com/questions/3161548/…。它还提到了一些您可以使用的验证码服务。 (无需构建)

标签: java web caching architecture web-crawler


【解决方案1】:

除了拥有一个robots.txt 文件(不礼貌的爬虫可能无论如何都会忽略)之外,您还可以提供一个sitemap.xml 文件来列出您的所有页面。爬虫会选择那些而不是使用您网站的搜索功能,这会减少负载。当 URL 仅在几个参数上有所不同时,这也是一种避免对相同内容的多次请求的方法。

如果你无法避免它们,那就让它们的工作更简单,这样它们就不会那么麻烦了。

【讨论】:

  • 我们确实有一个 sitemap.xml 文件。但这个问题与 robots.txt 或 sitemap.xml 无关。一些恶意机器人将其程序部署在数百台云服务器上,以高频率抓取数据,有时会给我们的服务器带来很大压力。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-29
  • 1970-01-01
  • 1970-01-01
  • 2011-07-11
  • 2021-12-11
  • 2019-07-06
相关资源
最近更新 更多