充气娃娃怎么样(充气娃娃什么感觉)( 二 )


上一篇我们已经讲解了如何使用requests库发起http/s请求,我们来看看代码
充气娃娃怎么样(充气娃娃什么感觉)
文章图片


但是在打印的结果中数据却是空?为何浏览器请求成功,而我们的代码却请求不到数据呢?难道我们遇到了反扒?这种情况下如何解决?
大家在遇到这种情况时,回到浏览器的调试窗口,查看下浏览器发起的请求头,因为可能浏览器请求时携带了什么请求头参数而我们代码中没有 。
充气娃娃怎么样(充气娃娃什么感觉)
文章图片


果然,我们在浏览器头中看到了有两个请求头Referer和User-Agent,那我们先把他们加到代码的请求头中,再试试!
充气娃娃怎么样(充气娃娃什么感觉)
文章图片


3.数据提取
我们对爬取的数据分析发现,此数据为jsonp跨域请求返回的json结果,所以我们只要把前面的fetchJSON_comment98vv4646(和最后的)去掉就拿到json数据了 。
充气娃娃怎么样(充气娃娃什么感觉)
文章图片


将json数据复制到json格式化工具中或者在Chrome浏览器调试窗口点击Preview也可以看到,json数据中有一个key为comments的值便是我们想要的评论数据 。
充气娃娃怎么样(充气娃娃什么感觉)
文章图片


我们再对comments值进行分析发现是一个有多条数据的列表,而列表里的每一项就是每个评论对象,包含了评论的内容,时间,id,评价来源等等信息,而其中的content字段便是我们在页面看到的用户评价内容 。
充气娃娃怎么样(充气娃娃什么感觉)
文章图片


那我们来用代码将每个评价对象的content字段提取并打印出来
充气娃娃怎么样(充气娃娃什么感觉)
文章图片


4.数据保存
数据提取后我们需要将他们保存起来,一般保存数据的格式主要有:文件、数据库、内存这三大类 。今天我们就将数据保存为txt文件格式,因为操作文件相对简单同时也能满足我们的后续数据分析的需求 。
充气娃娃怎么样(充气娃娃什么感觉)
文章图片


然后我们查看一下生成的文件内容是否正确
充气娃娃怎么样(充气娃娃什么感觉)
文章图片


5.批量爬取
再完成一页数据爬取、提取、保存之后,我们来研究一下如何批量抓取?
做过web的同学可能知道,有一项功能是我们必须要做的,那便是分页 。何为分页?为何要做分页?
我们在浏览很多网页的时候常常看到“下一页”这样的字眼,其实这就是使用了分页技术,因为向用户展示数据时不可能把所有的数据一次性展示,所以采用分页技术,一页一页的展示出来 。
让我们再回到最开始的加载评论数据的url:
https://sclub.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98vv4654&productId=1263013576&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1
我们可以看到链接里面有两个参数page=0&pageSize=10,page表示当前的页数,pageSize表示每页多少条,那这两个数据直接去数据库limit数据 。
老司机一眼便可以看出这就是分页的参数,但是有同学会说:如果我是老司机还干嘛看你的文章?所以我教大家如何来找到这个分页参数 。
回到某东的商品页,我们将评价页面拉到最底下,发现有分页的按钮,然后我们在调试窗口清空之前的请求记录 。