【问题标题】:How do you prevent crawling from your web site?您如何防止从您的网站抓取?
【发布时间】:2013-12-29 22:36:37
【问题描述】:

我在 IIS 上运行一个网站,在分页时有超过 1000 个页面链接,我想通过运行爬虫脚本并逐页获取信息来防止其他人爬取/窃取这些页面。

如果它是用户请求或由脚本运行,有什么方法可以理解请求?或者在提出请求之前可能会在最高级别对此进行一些过滤?

【问题讨论】:

  • 您不能“预防”,但请参阅robots.txt(所有这些问题都是所述网站上的地址)。任何足够好的不撒谎的爬虫也应该遵守这样的机器人规则。任何“敏感”或“私人”材料都不得被未经授权的用户访问。
  • @user2864740 - 是的,好的爬虫会尊重 robots.txt,但试图从特定网站抓取数据的人不太可能尊重任何“请不要看那里”的建议。跨度>
  • 是否有绕过 robots.txt 的方法?

标签: iis web-crawler


【解决方案1】:

您无法阻止自动抓取。

您可以使自动抓取您的内容变得更加困难,但如果您允许用户查看内容,它可以自动进行(即自动浏览器导航并不难,并且计算机通常不会在请求之间等待很长时间)。

一种选择是要求单个“用户”(无论是否经过身份验证)在请求之间有一些最小延迟(即 1-5 秒)。这种方式通用爬虫将没有用(在请求中需要一些“用户ID”和请求之间的延迟),并且必须编写自定义爬虫代码,这显然更耗时。

请注意,为您的网站编写特殊的“爬虫”可能被视为“高尚”的行为,并显着增加了创建它的动机(即查看“如何使 Google 地图离线可用”问题)。

【讨论】:

  • 你能解释更多关于谷歌地图的信息吗?让它们离线是一种缓存爬行还是某种东西?
  • @Kubi - 在“离线谷歌地图”上 - 要让它们离线,你至少需要瓷砖 - 所以你需要抓取网站。虽然显然违反了许可协议,但这样的请求经常出现 - 所以无论谁实施解决方案都会获得一些人气点/出名/无论如何。因此,与一些没有需求的随机未知网站相比,更多的人愿意花时间实现特定的抓取代码。
猜你喜欢
  • 2015-05-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-09
  • 2019-03-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多