当前位置:  开发笔记 > 编程语言 > 正文

如何在网站上绕过这种"异常流量"检测?

如何解决《如何在网站上绕过这种"异常流量"检测?》经验,为你挑选了2个好方法。

出于道德原因,我想说的是,这里提到的网站内容是完全免费提供的,不需要注册,我也没有违反任何法律规则.

我通常开发用于私人使用的网络刮刀(我的意思是没有经济上的期望),原因之一是:它每天为我节省了大量时间.

在我正在抓取的当前网站上,当我连续请求30个网址时,服务器将我的连接识别为"异常流量",并显示Google的重新访问:

在此输入图像描述

我想知道我应该采用什么方法来避免重新捕获并仍然没有问题地重定向URL.

唯一的条件是:没有代理/ VPN使用.

这是我从http标头中捕获的内容:

请求:

GET /rd/TdcfliKN0j9dT-bIMpo-GynUNR63kfnDsJn_YOP8uurTmlvy7C3oKnJtb1Mi-CI_fGsHJ72O49dM1IzXDCPNuPf3OfEb21w5hkGdV8ny__2u2pKo6yBgMbPCdAF-ti1uomfp3mWcB_K9M8PitpDMkg../x-Mad-VYWQz_lpphY5LN_fnkid__zqmI-i5AYJgziAl93kYhdvtlwVijRDmSGIifl-ouZki2eTWit7zi38raKiYkKtPqKSWftIfwFqIHD0bXua4z_LcrHQOnKwCWSNp0kJKcowVQSza8XJ88-TWJfA.. HTTP/1.1
Host    r.plixid.com
User-Agent  Mozilla/5.0 (Windows NT 6.3; WOW64; rv:39.0) Gecko/20100101 Firefox/39.0
Accept  text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding gzip, deflate
Referer http://plixid.com/2015/12/29/vinter-sleep-die-cold-winter-2015-mp3/
Cookie  __cfduid=...; PHPSESSID=...; _ga=...; _gat=1
DNT 1
Connection  keep-alive

响应:

HTTP/1.1 301 Moved Permanently
Date    Tue, 29 Dec 2015 11:42:47 GMT
Content-Type    text/html; charset=UTF-8
Transfer-Encoding   chunked
Connection  keep-alive
X-Powered-By    PHP/5.5.9-1ubuntu4.11
Cache-Control   private, must-revalidate
Location    http://novafile.com/0ubisyq06l8s
Pragma  no-cache
Expires -1
Server  cloudflare-nginx
CF-RAY  25c53e59f4d70db7-MAD

我试过了什么?

使用随机用户代理.

使用随机ipv4和代理的x-forwared-for标头.

发送DNT禁用头部(0).

随机等待间隔可以做3到10秒之间的下一次请求.

我发现了什么?

从请求到请求,大约10分钟的非活动等待间隔非常长,解决了问题.

做29个连续请求然后等待10分钟来完成第30个请求并不能解决问题.

CodeCaster.. 6

我仍然找不到一个规范的"如何编写网络刮刀"问答,这里是:让你的代码像人一样.你必须记住,构建网站的人不希望他们的内容被刮掉,所以任何使你看起来像机器人的东西都可以被确定并用来对付你.

这首先意味着您的用户代理必须像浏览器一样工作.这就像浏览器一样正确填充请求标题,读取整个响应并对其进行操作(如果它包含HTML).

如果响应设置了cookie,则存储它们并在连续请求中使用它们.

如果主文档链接到接收文档中的更多资源(同样,如果是HTML),那么也会获取这些资源.

如果其中一个资源(嵌入在HTML中或从另一个文件链接)是脚本,则可能需要执行该脚本.有些站点使用pingback脚本,有些站点使用输入检测.没有pingback,没有鼠标事件:你是一个机器人.

智能地控制您的请求.一秒钟内有五个请求是可疑的,但是每五秒钟就有一个请求.

所有这些都是微不足道的.如果你能想到它,那么网站(或图书馆)的开发者也会想到它.这通常是一个反复试验的问题.没有灵丹妙药,因为每个站点都可以在他们使用的库中使用自定义代码或不同的检测设置.

话虽这么说,并解决这个故事的道德:如果一个网站确实表现出最轻微的不情愿被刮,不要刮它.



1> CodeCaster..:

我仍然找不到一个规范的"如何编写网络刮刀"问答,这里是:让你的代码像人一样.你必须记住,构建网站的人不希望他们的内容被刮掉,所以任何使你看起来像机器人的东西都可以被确定并用来对付你.

这首先意味着您的用户代理必须像浏览器一样工作.这就像浏览器一样正确填充请求标题,读取整个响应并对其进行操作(如果它包含HTML).

如果响应设置了cookie,则存储它们并在连续请求中使用它们.

如果主文档链接到接收文档中的更多资源(同样,如果是HTML),那么也会获取这些资源.

如果其中一个资源(嵌入在HTML中或从另一个文件链接)是脚本,则可能需要执行该脚本.有些站点使用pingback脚本,有些站点使用输入检测.没有pingback,没有鼠标事件:你是一个机器人.

智能地控制您的请求.一秒钟内有五个请求是可疑的,但是每五秒钟就有一个请求.

所有这些都是微不足道的.如果你能想到它,那么网站(或图书馆)的开发者也会想到它.这通常是一个反复试验的问题.没有灵丹妙药,因为每个站点都可以在他们使用的库中使用自定义代码或不同的检测设置.

话虽这么说,并解决这个故事的道德:如果一个网站确实表现出最轻微的不情愿被刮,不要刮它.



2> David Goldfa..:

您正在尝试执行该网站不想要的操作.你想要符合道德规范.我建议您写下您的案例并将其直接呈现给网站所有者.我看到plixid.com有一个"联系我们"按钮(页面右上角).

人们通常是合理的.如果您有充分的理由要求您,并且他们可以轻松地进行更改,他们很可能会帮助您.

推荐阅读
我我檬檬我我186
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有