反爬虫 - Python

时间:2016-09-06 03:48:58

标签: python python-2.7 python-3.x web-crawler google-crawlers

我知道用漂亮的汤模块编写Python爬虫。现在我想检测是否有人抓取我的网站。怎么做。有人可以指向我pesudo代码或源代码。基本上我想在python中编写反爬虫。

2 个答案:

答案 0 :(得分:0)

这很难,但可以做一些事情来过滤抓取工具。

<强>验证

仅向授权用户显示页面。

强有力的Captcha

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

用户代理

来自抓取工具的请求可能无法设置用户代理,因此您可以阻止那些没有用户代理(或者不是正确的用户代理)的请求。

请求频率

有些抓取工具比人类更快地请求您的网站,阻止他们的IP。

JS加载

使用javascript加载你的html,正常抓取只在javascript加载完成之前获得基本html。

临时网址

您可以使用时间戳(或其他内容)对您的网址进行编码,并将网址公开给用户进行访问,使得一些抓取工具无法进入。

或任何其他

...

答案 1 :(得分:0)

假设并非所有爬虫都是讨厌的呢?大多数人都尊重robots directives。当然你可以实施各种启发式方法来阻止机器人,但你要做的第一件事就是

User-agent: *
Disallow: /

位于您网站根目录的robots.txt中。

然后,如果你真的想为那些不遵循robots.txt的人努力工作,那么对所有的链接使用Javascript:不是100%保证阻止机器人,但它会让他们的生活更加艰难。