美文网首页
反虫与反爬虫二三事

反虫与反爬虫二三事

作者: Moscow1147 | 来源:发表于2018-07-08 10:18 被阅读0次
Santorini 圣托里尼

爬虫,反爬虫,反反爬虫……魔高一尺,道高一丈。无穷无尽的进化抗争史。

入门级反爬虫:验证一下Headers里面的一些参数,设定一下访问IP的阈值等。

中高级反爬虫:添加验证码,前端js渲染、异步加载,注册扫码登陆填手机号,投毒,蜜罐等。

次终极反爬虫:人工智能全流量监控。

终极反爬虫:目前还不知道,如果需要肯定会有。

Headers参数

  1. user-agent

    这是表明你是一个什么东西,搜索引擎的蜘蛛、用户的浏览器类型等等

  2. referer

    这个表明你的这次请求是来自哪里的。

  3. cookie

    cookie可以说是一个身份的象征,一个cookie可以包含很多信息,而且每一个cookie是和服务器端的session一一对应的。不同的网站反爬的规则不尽相同,有简单的,也有难的。如果不允许设置cookie可能十几次或者几十次之后就拒绝访问了。如果使用代理,可能还要维护一个ip和cookie对应表,同时还要注意cookie的变化以及过期等事情,相当麻烦。

代理IP

  1. 伪装IP

    有的网站可能并不去验证真实ip,可以在X-Forwarded-For中伪造ip。

  2. 代理IP池

    这部分相对简单一点,网上有大量的免费代理,甚至还有api提供,不过既然是免费的,你用别人也能用,稳定性和速度几乎不能保障。某宝上各种代理ip,价格在十几到几十不等,没买过,据说稳定性也不太强。

  3. vpn

    相对于代理,vpn具有非常好的稳定性,但是更换的过程比较缓慢,所以适用于跟换次数少,但是网速要求高的。

  4. ADSL拨号

    爬虫界的大招,成本稍微高点,不过ip多-数万,速度快,1-10M。缺点,更换一次ip大概需要10秒钟,而且还要设置好断线重拨,动态ip追踪,远程硬件重置等。

  5. Tor

    匿名网络,该方法的采集速度是比较慢的,一个请求要从美国到俄罗斯到希腊最后再回来..优点是绝对的匿名(仅限于反爬虫)。适用于单独请求,网速要求低的情况。

高级

这部分主要是提高获取数据的门槛,登陆不进去就无法获取数据、获得到数据却不容易提炼出数据、提炼出数据却包含无效数据假数据,清洗不易;更有甚者让其进入蜜罐。

  1. 验证码

    这里又将是无尽的抗争进化史了。刚开始是纯数字的静态图片,然后稍难一点的数字加汉字或涉及语义的静态图片,之后静态变成动态的了,然后还有模拟人类行为的手势操作,非人类的12306验证码。破解验证码的技术也在不断发展,最初的人工一个一个,之后接入打码平台,到现在兴起的人工智能。效率和准确率不断提升。

  2. 非人性前端代码

    前端代码一点都不是正常人的,简单一点的把各个数据进行拆分打乱,并且加入一些无用的数据,但是显示给客户的依然是正常的,有的甚至将数据直接换成图片显示。像这种对于用户体验、SEO优化来说,简直没谁了,像这种杀敌一千自损八百,我是不太赞成的。

  3. js各种神操作

    对于js这一块,不仅有你想不到的,更有你做不到的。不是有一句话是这么说的吗:每天一道反爬题,轻轻松松学前端。简单的有将数据通过js渲染来输出,有的可能可能通过ajax异步传输,并且将数据在一个iframe中显示。什么?你说这个很简单,通过Selenium+PhantomJS/Chrome,获取渲染后的页面即可。我说性能低下,你说没问题,鉴于PhantomJS的一些Bug,采用Selenium+Chrome+virtualenv,多进程、异步等往上堆技术,就可以解决的。那我还说了,通过特征提取,人操作的浏览器和Selenium驱动的headless浏览器还是不一样的,比如说插件数、语言、WebGL供应商和渲染器等等,还有很多刁钻的,又该如何?不过还真有解决办法。

  4. 投毒

    这一方面可以做的事情也比较多,可以给他们一些假数据,就是比较损。

  5. 心理战

    赢得这场爬虫与反爬虫这场战争,最好的办法是不费一兵一卒,让尔等屈服。打打杀杀的多不好,大家都是文化人。没事互相写两行注释等,套路一下。弄一个蜜罐,你要啥我给你啥还不行吗,要啥自行车。

次终极

这部分发展还并不完善(但是一定有在做的),一个是人工智能刚起步,另一个是全流量,每一Bit流量的前世今生都会进行监控,成本太高。

额外的话:

如果pc端的网页太难,不妨试试手机端的,另外还可以看看app端的和微信小程序的。

做人要厚道,别分分钟几百万上下访问量,慢一点,再慢一点。

大家都是程序员,混口饭吃而已。男人何苦为难男人,说不定下一秒你就从反爬虫变成爬虫工程师呢。不过说真的,真的没必要死磕对方。从商业的角度来说也是这样的,你挡住了99%的爬虫就可以了,没必要花费大量的人力物力去啃那1%的硬骨头,支出和收益不成正比啊。当然,不为别的,就为了面子,死磕到底也是可以的。

相关文章

  • 反虫与反爬虫二三事

    爬虫,反爬虫,反反爬虫……魔高一尺,道高一丈。无穷无尽的进化抗争史。 入门级反爬虫:验证一下Headers里面的一...

  • 反爬虫到底是怎么一回事?

    爬虫与反爬虫永远是相生相克的:当爬虫知道了反爬策略就可以制定反-反爬策略,同样地,网站知道了爬虫的反-反爬策略就可...

  • scrapy框架-反爬虫与绕过方法+setting动态配置

    反爬虫与绕过方法 反爬虫的技术越来越丰富,种类也越来越多,以下归纳爬虫与反爬虫的应对措施和绕过方法。 甲.对网站感...

  • 爬虫、反爬虫与突破反爬虫

    【爬虫】批量获取网站数据 【反爬虫】防止爬虫批量获取网站数据。反爬需要人力和机器成本。反爬可能将普通用户识别为爬虫...

  • 爬虫基础系列urllib——构造请求头(3)

    爬虫与反爬虫 爬虫:自动获取网站数据的程序 反爬虫:使用技术手段防止爬虫程序爬取数据 反扒机制1 判断用户是否是浏...

  • 爬虫不尽兴?那再来点反爬虫吧!

    爬虫与反爬虫,这相爱相杀的一对,在现在你会爬虫是不够的,你还得会反爬虫。 为 Python 平反 首先是爬虫,爬虫...

  • 爬虫?反爬虫!

    爬虫与反爬虫,这相爱相杀的一对,在现在你会爬虫是不够的,你还得会反爬虫。 为 Python 平反 首先是爬虫,爬虫...

  • 自学Python爬虫:常见的反爬与反爬处理

    有爬虫就有反爬虫的,双方都是一直在博弈升级中。 常见的反爬虫措施有: 字体反爬 基于用户行为反爬虫 基于动态页面的...

  • CNN大战验证码

    介绍   爬虫江湖,风云再起。自从有了爬虫,也就有了反爬虫;自从有了反爬虫,也就有了反反爬虫。  反爬虫界的一大利...

  • 常见的反爬虫和应对方法

    通过Headers 反爬虫: 从用户请求的Headers 反爬虫是最常见的反爬虫策略。很多网站都会对Headers...

网友评论

      本文标题:反虫与反爬虫二三事

      本文链接:https://www.haomeiwen.com/subject/vwznuftx.html