充气娃娃怎么样(充气娃娃什么感觉)( 二 )
上一篇我们已经讲解了如何使用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数据 。
老司机一眼便可以看出这就是分页的参数,但是有同学会说:如果我是老司机还干嘛看你的文章?所以我教大家如何来找到这个分页参数 。
回到某东的商品页,我们将评价页面拉到最底下,发现有分页的按钮,然后我们在调试窗口清空之前的请求记录 。
- 大家都在刷“张同学”,到底刷的是什么?
- 赵立坚:美国选总统要花140亿美元 这算什么民主?
- 就聊十分钟|吉林越狱犯朱贤健逃亡41天经历了什么
- 日本将禁止所有海外旅客入境 “封国”到底是为什么?
- 替人提取公积金一小时到账?背后有什么猫腻?
- 从放烟花到弹钢琴,疫情防控的“温情”背后是什么
- 乡村振兴需要什么样的人才?乡村产业发展也需要CEO
- “迄今为止最糟糕的变异株”,Omicron的出现意味着什么
- 变异株Omicron的出现意味着什么?突变数量“前所未有”
- 新冠新变体"奥密克戎"引发什么症状?外国专家发声