可以检测页面抓取吗?

所以我刚刚为我创建了一个为页面抓取的应用程序,然后运行它。 它工作正常。 我想知道是否有人能够弄清楚代码是否被页面删除,无论他们是否为此目的编写代码?

我用java编写代码,它只是检查一行html代码。

在我将更多代码添加到此程序之前,我想我会对此有所了解。 我的意思是它很有用,而且它几乎就像一个黑客。

看起来像最糟糕的情况,因为这个页面刮板不是太糟糕,因为我可以稍后使用另一个设备,IP将是不同的。 也可能在一个月内无关紧要。 该网站目前似乎正在获得相当多的网络流量。 编辑页面的人现在可能已经睡着了,此时它实际上还没有完成任何事情,所以这可能会被忽视。

感谢您的快速回复。 我想它可能已被忽视了。 我所做的只是复制一个标题,所以只是文字。 我想这可能类似于浏览器复制粘贴的工作原理。 该页面刚刚在今天早上编辑,包括我试图获得的文字。 如果他们确实注意到了什么,他们还没有宣布,所以一切都很好。

这是一个黑客。 🙂

没有办法以编程方式确定是否正在抓取页面。 但是,如果您的刮刀变得流行或者您使用它太重,那么很有可能在统计上检测刮削。 如果您看到一个IP每天在同一时间抓取相同的页面,您可以做出有根据的猜测。 如果您在其他计时器上看到请求,则相同

如果可以的话,你应该尝试遵守robots.txt文件,并且自我限制,要有礼貌。

作为一个系统管理员自己,是的,我可能会注意到,但只能根据客户端的行为。 如果客户有一个奇怪的用户代理,我会怀疑。 如果客户浏览网站的速度太快或间隔时间非常短,我会怀疑。 如果从未请求某些支持文件(favicon.ico,CSS和JS文件中的各种链接),我会怀疑。 如果客户端访问奇数(不可直接访问)页面,我会怀疑。

然后,我必须真正地看着我的日志。 本周Slashdot特别有趣,所以我可能不会注意到。

这取决于您如何实现这一点以及检测工具的智能程度。

首先要注意User-Agent。 如果你没有明确地设置它,它将类似于“Java-1.6”。 浏览器发送其“唯一”用户代理,因此您可以模仿浏览器行为并发送MSIE的User-Agent或FireFox(例如)。

其次,检查其他HTTP标头。 可能有些浏览器会发送他们的特定标头。 举一个例子并按照它,即尝试将标题添加到您的请求中(即使您不需要它们)。

人类用户的行为相对较慢。 机器人可以非常快速地行动,即检索页面然后“点击”链接,即执行另一个HTTP GET。 在这些操作之间放置随机睡眠。

浏览器不仅检索主HTML。 然后它下载图像和其他东西。 如果你真的不想被发现,你必须解析HTML并下载这些东西,即实际上是“浏览器”。

最后一点。 显然不是你的情况,但几乎不可能实现通过Capcha的机器人。 这是检测机器人的另一种方法。

快乐的黑客!

如果你的刮刀就像人一样,那么几乎没有任何机会将它作为刮刀检测到。 但是如果你的刮刀就像一个机器人那么它就不难被发现了。

要像人一样行动,您需要:

  1. 查看浏览器在HTTP标头中发送的内容并模拟它们。

  2. 查看浏览器在访问页面时请求的内容并使用scraper访问该页面

  3. 让刮刀按照普通用户的速度进行操作

  4. 以随机时间间隔发送请求,而不是以固定间隔发送请求

  5. 如果可能,请从动态IP而不是静态IP发出请求

假设您以正常方式编写了页面刮板,即它获取整个页面,然后进行模式识别以从页面中提取您想要的内容,所有人都可能知道该页面是由机器人获取而不是普通的浏览器。 他们所有的日志都会显示整个页面被取出; 一旦它在你的RAM中,它们无法分辨你用它做什么。

对于服务页面的服务器,无论是将页面下载到浏览器还是下载页面和屏幕都没有区别。 这两个操作都只需要一个HTTP请求,无论您对生成的HTML做什么,都不是服务器的业务。

话虽如此,可以想象一个复杂的服务器可以检测到看起来不像普通浏览器的活动。 例如,浏览器应该请求从页面链接到的任何其他资源,这在屏幕抓取时通常不会发生。 或者来自特定地址的exception请求。 或者只是HTTP User-Agent标头。

服务器是否尝试检测这些东西取决于服务器,大多数情况不是。

我想把我的两分钱给可能正在读这篇文章的其他人。 在过去的几年里,网络刮痧越来越受到法院系统的不满。 我在最近写的一篇博文中引用了很多例子。

你应该明确遵守robots.txt,但也要查看网站T&C,以确保你没有违反。 肯定有一些方法可以让人们认识到你是网络抓取的,这样做可能会产生潜在的后果。 如果网站的条款和条件不允许网页抓取,那么请玩得开心,但要确保仍然是有意义的。 不要破坏带有失控机器人的网络服务器,限制自己以确保不会影响服务器!

为了完全披露,我是Distil Networks的联合创始人,我们帮助公司识别和停止网络抓取器和机器人。