Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
反爬虫-Python_Python_Python 2.7_Python 3.x_Web Crawler_Google Crawlers - Fatal编程技术网

反爬虫-Python

反爬虫-Python,python,python-2.7,python-3.x,web-crawler,google-crawlers,Python,Python 2.7,Python 3.x,Web Crawler,Google Crawlers,我知道用漂亮的soup模块编写Python爬虫。现在我想检测是否有人在我的网站上爬行。如何做到这一点。有人能告诉我pesudo代码或源代码吗。基本上,我希望用python编写反爬虫程序 这很难,但是可以做一些事情来过滤爬虫 Auth 仅向授权用户显示页面 strong验证码 如果你的验证码系统足够强大,可以反一部分爬虫 用户代理 来自爬虫程序的请求可能没有设置用户代理,所以您可以阻止那些没有用户代理(或没有正确的用户代理)的请求 请求频率 一些爬虫请求你的网站比人类更快,阻止他们的IP JS加载

我知道用漂亮的soup模块编写Python爬虫。现在我想检测是否有人在我的网站上爬行。如何做到这一点。有人能告诉我pesudo代码或源代码吗。基本上,我希望用python编写反爬虫程序

这很难,但是可以做一些事情来过滤爬虫

Auth

仅向授权用户显示页面

strong验证码

如果你的验证码系统足够强大,可以反一部分爬虫

用户代理

来自爬虫程序的请求可能没有设置用户代理,所以您可以阻止那些没有用户代理(或没有正确的用户代理)的请求

请求频率

一些爬虫请求你的网站比人类更快,阻止他们的IP

JS加载

使用javascript加载html,普通爬网仅在javascript加载完成之前获取基本html

临时URL

您可以使用时间戳(或其他东西)对url进行编码,并将url公开给用户访问,使一些爬虫无法找到入口

或任何其他


..

假设不是所有的爬虫都是讨厌的,怎么样?大多数人确实尊重法律。当然,你可以实现各种各样的启发式来阻止机器人,但是你要做的第一件事就是

User-agent: *
Disallow: /
在站点根目录下的robots.txt中


然后,如果你真的想让那些不遵循robots.txt的人变得困难,那么就在所有链接中使用Javascript:不能100%保证阻止机器人,但这会让他们的生活更加困难。

这根本无法做到。您可以尝试阻止最简单的方法(阻止用户代理、监视快速请求、使用javascript注入等等),但您无法阻止它。