Web crawler 网络爬虫会遇到什么危险?

Web crawler 网络爬虫会遇到什么危险?,web-crawler,Web Crawler,我刚写完一个爬虫程序,一直在想为什么在某个网站上爬行是不好的。我知道现代浏览器的风险主要来自javascript。所以我的问题是,一个网络爬虫(用PHP或Java编写)能不能刮到一个可能会对爬虫造成损害的网站?这确实取决于你的网络爬虫做什么。如果你的爬虫只是从HTML中抓取文本,那么在大多数情况下你都很好。当然,这假设您在存储/显示数据之前正在清理数据。如果这就是你正在做的,那么我能想到的唯一真正的痛苦就是当你在跟踪链接时,有人误导了你的爬虫。根据您提供的用户代理,他们基本上可以将您的爬虫定位并

我刚写完一个爬虫程序,一直在想为什么在某个网站上爬行是不好的。我知道现代浏览器的风险主要来自javascript。所以我的问题是,一个网络爬虫(用PHP或Java编写)能不能刮到一个可能会对爬虫造成损害的网站?

这确实取决于你的网络爬虫做什么。如果你的爬虫只是从HTML中抓取文本,那么在大多数情况下你都很好。当然,这假设您在存储/显示数据之前正在清理数据。如果这就是你正在做的,那么我能想到的唯一真正的痛苦就是当你在跟踪链接时,有人误导了你的爬虫。根据您提供的用户代理,他们基本上可以将您的爬虫定位并重定向到他们想要的任何位置。您可以编写代码来尝试防止这种情况,但这显然是一个很难完全避免的问题

然而,有一些陷阱可能会让网络爬虫上当受骗。如果它在做的事情上不聪明,那么它可能会陷入困境。这基本上创建了一个无限的站点循环,让你的爬虫点击,本质上是为了防止网络爬虫对站点进行爬虫。这有时是无意中完成的,这就是为什么大多数web爬虫都有
max crawl depth
设置的原因。(Chris Jester Young在评论中谈到了这一点,并就以下用户看不到的链接提出了几点好的观点。例如,一个包含css的链接,如
显示:无

另一件事显然是。webcrawler以网站带宽和资源为食

  • 善待网站的资源;在多次撞击站点时对爬虫进行节流。
    • 有些网站会阻止你的爬虫程序,如果它试图以高速度爬行
  • 遵循和元数据,这样你就只能抓取网站管理员想要抓取的位置
  • 如果网站有禁止网络爬网的策略,则不要对网站进行爬网。
    • 这通常可以在中找到,或在网站的用户协议中找到

最后但并非最不重要的一点是,在某些国家,您可能会面临一些法律处罚。因为我不是一个懒汉,我甚至不打算尝试进入这个领域。因此,在释放爬虫之前,请查阅当地的法律/法规。

如果你的爬虫不尊重
robots.txt
,网站可以为你的爬虫设置蜂蜜陷阱(例如,如果链接被JavaScript或CSS隐藏,没有人会点击链接),这将提示他们你正在运行一个不符合要求的机器人。这可能导致法律诉讼。请别挂断电话。有关于搜索引擎的规则吗?是的,有。任何合法搜索引擎的爬虫程序都会尊重robots.txt,不会提出任何问题。