众所周知,不同的网站有不同的反爬虫策略,对于网络爬虫的限制也不一样,常见的情况大致可以分为以下3类:
一、不返回网页,如不返回内容和延迟网页返回时间。
不返回网页是比较传统的反爬虫手段,也就是在爬虫发送请求给相应网站地址后,网站返回404页面,表示服务器无法正常提供信息或服务器无法回应;网站也可能长时间不返回数据,这代表对爬虫已经进行了封杀。
二、返回数据非目标网页,如返回错误页、返回空白页和爬取多页时均返回同一页。
除了不返回网页外,还有爬虫返回非目标网页,也就是网站会返回假数据,如返回空白页或爬取多页的时候返回了同一页。当你的爬虫顺利地运行起来,你开开心心地去做其他事情了,结果半个小时之后发现爬取的每一页的结果都是一样的,这就是获取了假的网站。
例如在去哪儿网的机票价格页面,网上标注的价格居然和html源码不一样。例如某机票在网上标注的价格是530元,但是在html源码中的机票价格是538元。这样的方式除了去哪儿网,在猫眼电影和斗鱼直播中都有使用,爬取下来的数字和真实的数字会不一样。
三、增加获取数据的难度,如登录才可查看和登录时设置验证码。
网站也会通过增加获取数据的难度反爬虫,一般登录才可以查看数据,而且会设置验证码。为了限制爬虫,无论你是否是真正的用户,网站都可能会要求你登录并输入验证码才能访问。例如,12306为了限制自动抢票就采用了严格的验证码功能,需要用户在8张图片中选择正确的选项。
以上就是爬虫工作中经常遇见的三种情况,爬虫工作中需要根据不同的实际情况制定不同的反反爬虫策略,才能顺利的进行工作。