反爬虫就是和爬虫抗衡,减少被爬取。因为搜索引擎的流行,网络爬虫已经成了很普及网络技术, 相当部分国内爬虫不遵守robots协议。所有有了保护自己内容不让别人抓取的反爬虫需求--------------------------反爬虫方法1、手工识别和拒绝爬虫的访问2、通过识别爬虫的User-Agent信息来拒绝爬虫3、通过网站流量统计系统和日志分析来识别爬虫4、网站的实时反爬虫防火墙实现5、通过JS算法,文字经过一定转换后才显示出来,容易被破解。某技术网站采用了这种方法6、通过CSS隐藏技术,可见的页面样式和HTML里DIV结构不同,增加了爬虫的难度,同时增加自己的维护难度。技术网站采用了这种方法7、通过JS不让用户复制,这对非专业人员有效,对技术人员/工程师来说,没有任何效果。不少网站采用。8、通过flash等插件技术(会被破解,同时对用户不友好,有流失用户的可能性)。早期网站用得多,移动互联网来后,这种方式对用户不友好,少有专业网站采用了。9、图片化A:将文字图片化,增加了维护成本,和移动端的可读性B:将标点符号图片化,再适当增加CSS混淆,这是一种较好的办法,不影响搜索引擎收录,不影响用户使用。但影响爬虫,是一种较好的反爬虫方式,某著名的文学网站采用了这种方法10、交给专业反爬虫公司来处理流程 1反爬虫混淆设计器 ---->产生反爬虫混淆素材2混淆素材--->将服务器端文字变成不可阅读文字3网络传输--->不可阅读文字+混淆素材4浏览器-->绘制阶段显示可读文字5浏览者能看见内容 但是无能有效复制,无法通过底层协议抓取 6混淆算法随时改变,只需要放入新素材就可以了,不需要工程师参与。 特点依靠文字矩阵变换来提高蜘蛛爬虫软件抓取的代价.由发布人员,而不是技术人员来更新混淆算法保护方:内容保护的方法素材易复制,易部署和运营抓取/窃取方:面对对方快速变化,增加了成本对于这种动态加载的网站,建议使用第三方库selenium爬取。
它可以完全模拟浏览器,等待网站全部加载完成后再进行数据的自动获取。
对于主流的ChromeDriver、InternetExplorerDriver、FirefoxDriver、OperaDriver都支持,网站上的元素也支持多种选择器,如class、id、xpath等。
但是用习惯以后,对于这种非纯静态页面,离开selenium感觉就完全不会爬虫了。
document.cookie='shieldval=defendShield-111.126.179.37path=/'
if (window.location.href.match(/defendShield/)){
window.location.replace('/')
}else{
window.location.reload()
}
1: 设置cookie
2: 判断当前路径是否/defendShield/,如果是重置到根目录否则刷新页面