正文
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