目录
简介
近日因为公司业务需要,领导要求我批量获取一款天猫商城上的商品链接下的评论。虽然我已有超过一年的爬虫实战经验,但是一想到我即将面对的是“阿里云”这一BUG级怪物,头皮不由自主地发麻了。但是秉着“万物皆可爬”的信念,我还是硬着头皮上了。
网页展示
我需要获取的网页链接为天猫商城。
先来看看评论区的模样吧。
正如大家所熟知的,评论栏目十分工整,所有评论都整齐地摆放在了网页当中,而页面末尾还有翻页按钮。一切还似乎是简单的模样。
然而,爬虫界里有一句话可谓是“至理箴言”——你看得到不一定你就能爬得到。这不,当我打开浏览器监听器时就发现了天猫商品的网页采取的都是异步请求方式获得的,评论区的都内容都停放在了类似于
https://rate.tmall.com/list_detail_rate.htm?itemId=537259015354&spuId=694941313&sellerId=2386968451&order=3¤tPage=2&append=0&content=1&tagId=&posi=&picture=&groupId=&ua=098%23E1hvS9vovLIvUvCkvvvvvjiPRFzpsjnmRLFw0jrCPmPZlj3CnLMpljYWn2LwQj3bRphvCvvvvvmCvpvZz2staosNznswUGrfYgsw1aAv7IVrvpvEvCB%2FvNsGv2s22QhvCvvvMMGCvpvVvmvvvhCvKphv8vvvvvCvpvvvvvv2vhCvCjQvvvWvphvW9pvvvQCvpvs9vvv2vhCv2RmEvpvVmvvC9jamuphvmvvv9bcWRGhImphvLvCbXvvjna21Q8oaWLEc34z%2BFfmtEpcUTUoXKFwFxT7YK4vTHkGVqwzaiLu18vmYiR0n%2BbyDCw2IAXZTKFEw9Exrz8TJEcq9afknnbvtvpvhvvvvv8wCvvpvvUmm3QhvCvvhvvmrvpvpjvkJ9wjCvmvIFfwznHVt6OhCvvswMHna3nMwznQY3DItvpvhvvvvvUhCvvswNHBwEaMwzns%2FblItvpvhvvvvv86Cvvyv2h7n1GwvzWy%3D&needFold=0&_ksTS=1561438169812_1139&callback=jsonp1140
这样的链接当中。
可以注意到,链接当中包含着一个currentPage字段,只要通过更改currentPage的值即可实现翻页的效果。
上图为评论区内容的停放方式。实话说,到目前为止,我还没有体会到阿里云的强大之处到底在哪,根据个人经验,我仍然觉得只要听过递归算法实现翻页、逐个获取就可以完成老板的任务。然而,不到最后一刻真的不能轻易放松啊。
阿里云的反爬策略
通常来讲,如果网站想要反爬,它们通常会从访问者的访问频率入手,只要识别到某个IP发出的请求在某一时间段内极度频繁网站便会认定(如果真的需要反爬的话)该访问者为不友好客户,将该IP封锁请求一段时间。
然而阿里云的高明之处在于它压根不需要设置