因为京东网页上的商品评论是动态加载的,导致爬虫很难获取到数据。就改用了抓包的方式。因为我本身是做android开发的,所以使用京东app和fiddler进行接口的抓取,最后模拟post参数,进行数据的获取。
具体如何使用fiddler和手机app进行联调抓包我就不说啦,网上有很多教程。
第一步,在京东app中打开你感兴趣的商品评论界面
第二步,在fiddler中找到相应的记录
可以看到请求的域名是:api.m.jd.com,
接口是:/client.action
get部分的参数是functionId=getCommentListWithCard&clientVersion=7.0.2&build=58743&client=android&d_brand=HUAWEI&d_model=HUAWEIMLA-AL10&osVersion=4.4.2&screen=800*480&partner=tencent&androidId=e0db55a803f15319&installtionId=5c5dcdaf35134d438ca81220d8dcad7b&sdkVersion=19&lang=zh_CN&uuid=863064010224212-E0DB55A803F1&area=11_891_893_16535&networkType=wifi&wifiBssid=2a90969fc326a92c0b7c799a9a83e6f0&st=1526610721104&sign=116094e4176d92af6e3619d06f6d838a&sv=111
post的部分的参数要打开TextView标签才能看到,是body=%7B%22tagType%22%3A%22%22%2C%22category%22%3A%22670%3B671%3B672%22%2C%22num%22%3A%2210%22%2C%22pictureCommentType%22%3A%22A%22%2C%22isFirstRequest%22%3Atrue%2C%22isCurrentSku%22%3Afalse%2C%22shadowMainSku%22%3A%220%22%2C%22type%22%3A%220%22%2C%22sku%22%3A%225225346%22%2C%22offset%22%3A%221%22%2C%22tagId%22%3A%22%22%7D&
很明显这里使用的url编码,我们使用站长工具解码下这里的数据,可以得到
body={"tagType":"","category":"670;671;672","num":"10","pictureCommentType":"A","isFirstRequest":true,"isCurrentSku":false,"shadowMainSku":"0","type":"0","sku":"5225346","offset":"1","tagId":""}&
第三步,使用postman模拟参数,获取接口数据
使用post方法,header复制到header模块,get参数直接拼在url后面即可,post参数复制到body模块。这样就可以拿到数据啦!