当今互联网一大抄,搜索引擎遍布重复内容,大站采集小站,小站苟延残喘,作为一名网站主该如何杜绝爬虫,防止内容被抓取呢?附送私家内容:采集三大绝招。
本文来自著名MJJ论坛ID: 委员,仅供参考,本篇内容无版权,任意COPY,所引起的任何法律纠纷与本ID无关。 防采集三大招 1、防采集三大招第一招之加钱可及 最简单直接的方法,在DNS层面过滤爬虫IP,Dnspod付费版提供了分线路解析,针对机房IP解析到127.0.0.1。很多大站采用了这种方式,可以规避大部分垃圾国内爬虫。 2、防采集三大招第二招之触不可及 通过user_agent判断特征码过滤蜘蛛,主要针对国外数据收集爬虫,有些蜘蛛真的是玩命爬,很容易造成宕机。Nginx 配置代码
复制代码 简单说明下,一般蜘蛛都会有bot或者Spider特征码,比如Baiduspider,过滤掉不需要的非主流蜘蛛,还有些是Python和Go写的爬虫,用的默认头,也可以过滤掉。 高级玩法: Bash脚本定期分析black.log日志,提取垃圾蜘蛛IP加到Iptables,把蜘蛛拦截在防火墙外,效率更高。 当然你也可以和我抬杠说,我伪造user_agent爬不就得了,但是IP是不可能伪造的,比如百度蜘蛛就beijing和山西两个IP归属地,作为网站站长养成看日志的习惯,人工判断才是最有效的。 3、防采集三大招第三招之一触即发 在Nginx中限制Ip爬取频率,限制同一IP最大并发数和爬取速率,但这种方式有可能误伤。 在nginx.conf里的http{}里加上如下代码:
复制代码 在需要限制并发数和下载带宽的网站配置server{}里加上如下代码:
复制代码 补充下参数说明: 私家内容:采集三大绝招 这里仅讨论Python采集思路,高i铁头这种门槛较低,只适合小规模爬内容。 1、Selenium WebDrive Selenium WebDriver本用于web应用程序的自动化测试,因为是通过浏览器的驱动(web driver)来驱动操作浏览器,所以可以100%的模拟浏览器的行为,主要针对一些有交互动作的站,比如下拉才能显示内容的。因为涉及内容较多,有兴趣的可以自行Google,这里分享个自用函数。
复制代码 2、fake_useragent 伪造浏览器特征 前面也说了可以通过特征码屏蔽爬虫,反过来也可以伪造浏览器特征码,推荐fake_useragent,使用方法:
复制代码 3、无论是模拟浏览器还是随机浏览头,都容易因为爬取过多被屏蔽IP,比如百度下面的栏目,几乎都作了IP限制,最多爬个几千条就会被Ban,这时候就要用到另一神器动态IP代*理,可以自建代*理池,也可以用现成的,这里只说使用方法:
复制代码 随机UserAgen+动态IP,只要池子足够大基本可以做到百战百胜,无所不能爬,如果有验证码,还要把验证码识别加进去,这就是更高级的玩法了。 |
好贴 mark |
@cpuer 进来学习 |
其实直接找个比较全的IDC机房IP端全给屏蔽了就差不多了,但是也会把搜索引擎IP也给拦住。然后后端接入第三方防爬虫与风控系统。 |
好文!支持多发技术贴 |
|
最大的绝招,在自己的文章里加入大量违禁词语,等被采集以后,再编辑掉。 |
对面还没来得及采集,你先进去了 |
作个记号 |
其实如果是用Cloudflare的话,直接就可以一键在防火墙里面开启防止自动程序,非常方便。还可以设置防火墙屏蔽相关IP,签名站https://bks.thefuture.top 就用这种方法,感觉效果应该还行,目前没发现有人能顺利大量的爬取。 |