反虫与反爬虫二三事

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%的硬骨头,支出和收益不成正比啊。当然,不为别的,就为了面子,死磕到底也是可以的。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,311评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,339评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,671评论 0 342
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,252评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,253评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,031评论 1 285
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,340评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,973评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,466评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,937评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,039评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,701评论 4 323
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,254评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,259评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,485评论 1 262
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,497评论 2 354
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,786评论 2 345

推荐阅读更多精彩内容