专栏名称: InfoTech
以传播大数据、解读行业趋势、数据化运营为核心的新媒体平台,已有150多万行业人士关注,荣获2013年新浪微博百强自媒体、2016年中国十大大数据领域影响力平台,关注我就是关注数据
目录
相关文章推荐
数局  ·  Salesforce:2025浅析中国制造业 ... ·  14 小时前  
宏观土肥圆  ·  数据好不好 ·  昨天  
数据派THU  ·  BayesFlow:基于神经网络的摊销贝叶斯 ... ·  3 天前  
51好读  ›  专栏  ›  InfoTech

爬虫需谨慎!!!那些你不知道的爬虫反爬虫套路

InfoTech  · 公众号  · 大数据  · 2017-06-11 18:34

正文

请到「今天看啥」查看全文



50%?60%?还是?


正确答案是:500以下。


也就是说,一个单独的页面,12000的访问量里,有500是正常用户,其余是爬虫。


注意,统计爬虫的时候,考虑到你不可能识别出所有的爬虫,因此,这500个用户里面,其实还隐藏着一些爬虫。那么爬虫率大概是:

(12000-500)/12000=95.8%


这个数字你猜到了吗?


这么大的爬虫量,这么少的用户量,大家到底是在干什么?是什么原因导致了明明是百人级别的生意,却需要万级别的爬虫来做辅助? 95%以上,19保1?


答案可能会相当令人喷饭。这些爬虫大部分是由于决策失误导致的。


2 、哭笑不得的决策思路


举个例子,这个世界存在3家公司,售卖相同的电商产品。三家公司的名字分别是A,B,C。


这个时候,客户去A公司查询了下某商品的价格,看了下发现价格不好。于是他不打算买了。他对整个行业的订单贡献为0。


然而A公司的后台会检测到,我们有个客户流失了,原因是他来查询了一个商品,这个商品我们的价格不好。没关系,我去爬爬别人试试。


于是他分别爬取了B公司和C公司。


B公司的后台检测到有人来查询价格,但是呢,最终没有下单。他会认为,嗯,我们流失了一个客户。怎么办呢?


我可以爬爬看,别人什么价格。于是他爬取了A和C。


C公司的后台检测到有人来查询价格。。。。。


过了一段时间,三家公司的服务器分别报警,访问量过高。三家公司的CTO也很纳闷,没有生成任何订单啊,怎么访问量这么高? 一定是其他两家禽兽写的爬虫没有限制好频率。妈的,老子要报仇。于是分别做反爬虫,不让对方抓自己的数据。然后进一步强化自己的爬虫团队抓别人的数据。一定要做到:宁叫我抓天下人,休叫天下人抓我。


然后,做反爬虫的就要加班天天研究如何拦截爬虫。做爬虫的被拦截了,就要天天研究如何破解反爬虫策略。大家就这么把资源全都浪费在没用的地方了。直到大家合并了,才会心平气和的坐下来谈谈,都少抓点。


最近国内的公司有大量的合并,我猜这种“心平气和”应该不少吧?


二、爬虫反爬虫技术现状


下面我们谈谈,爬虫和反爬虫分别都是怎么做的。


1 、为python平反


首先是爬虫。爬虫教程你到处都可以搜的到,大部分是python写的。我曾经在一篇文章提到过:用python写的爬虫是最薄弱的,因为天生并不适合破解反爬虫逻辑,因为反爬虫都是用javascript来处理。然而慢慢的,我发现这个理解有点问题(当然我如果说我当时是出于工作需要而有意黑python你们信吗。。。)。


Python的确不适合写反爬虫逻辑,但是python是一门胶水语言,他适合捆绑任何一种框架。而反爬虫策略经常会变化的翻天覆地,需要对代码进行大刀阔斧的重构,甚至重写。这种情况下,python不失为一种合适的解决方案。


举个例子,你之前是用selenium爬取对方的站点,后来你发现自己被封了,而且封锁方式十分隐蔽,完全搞不清到底是如何封的,你会怎么办?你会跟踪selenium的源码来找到出错的地方吗?


你不会。你只会换个框架,用另一种方式来爬取。然后你就把两个框架都浅尝辄止地用了下,一个都没有深入研究过。因为没等你研究好,也许人家又换方式了。你不得不再找个框架来爬取。毕竟,老板等着明天早上开会要数据呢。老板一般都是早上八九点开会,所以你七点之前必须搞定。等你厌倦了,打算换个工作的时候,简历上又只能写“了解n个框架的使用”,仅此而已。


这就是爬虫工程师的宿命,爬虫工程师比外包还可怜。外包虽然不容易积累技术,但是好歹有正常上下班时间,爬虫工程师连这个权利都没有。


然而反爬虫工程师就不可怜了吗?也不是的。反爬虫有个天生的死穴,就是:误伤率。


2







请到「今天看啥」查看全文