我知道用漂亮的汤模块编写Python爬虫。现在我想检测是否有人抓取我的网站。怎么做。有人可以指向我pesudo代码或源代码。基本上我想在python中编写反爬虫。
答案 0 :(得分:0)
这很难,但可以做一些事情来过滤抓取工具。
<强>验证强>
仅向授权用户显示页面。
强有力的Captcha
如果你的验证码系统足够强大,可以反对一部分爬虫。
用户代理
来自抓取工具的请求可能无法设置用户代理,因此您可以阻止那些没有用户代理(或者不是正确的用户代理)的请求。
请求频率
有些抓取工具比人类更快地请求您的网站,阻止他们的IP。
JS加载
使用javascript加载你的html,正常抓取只在javascript加载完成之前获得基本html。
临时网址
您可以使用时间戳(或其他内容)对您的网址进行编码,并将网址公开给用户进行访问,使得一些抓取工具无法进入。
或任何其他
...
答案 1 :(得分:0)
假设并非所有爬虫都是讨厌的呢?大多数人都尊重robots directives。当然你可以实施各种启发式方法来阻止机器人,但你要做的第一件事就是
User-agent: *
Disallow: /
位于您网站根目录的robots.txt中。
然后,如果你真的想为那些不遵循robots.txt的人努力工作,那么对所有的链接使用Javascript:不是100%保证阻止机器人,但它会让他们的生活更加艰难。