admin 管理员组

文章数量: 887016

这不是我的第一个爬虫,但大多数都是像这样简单粗暴的,因为一开始对于定义函数,然后再相应

相应的操作,是比较困难的,这能直接写for循环语句。

首先,我们要明确我们的目标:从京东上爬取产品的评论。一般评论都是进行情感分析,但我还没进行到那一步,只能先进行相关数据爬取下来。

其次,找到数据源的京东官网首页,然后点击搜索框填入苹果笔记本,假设我们就只爬取第一个搜索结果。

由于可以看到我们的评论是动态的,且可能不断更新,我们便在谷歌网页右键,点击检查,或者审查元素(电脑不一样,说法不一样),就是以下这种界面

点击右上角的network,发现下面是空的,我们刷新页面,network下面就有东西了,但是我们需要评论,直接下拉到评论,网址不会改变,我们可以点击下一页,网址就会变成https://item.jd/5225346.html#comment,多了#comment部分,但同时在右边找到了评论所在的JS,具体怎么找呢,我们先点击JS,然后从最下面找,主要看Response,若是在Response里面找到了评论,那就是在那里,然后点击Headers,找到我们需要的URL。

然后,我们便开始进行相应的爬虫第一步:


# 导入必要的包
import requests
import json
header = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36"}
# header这个的作用在于伪装成浏览器进行操作,有些网页识别到不是浏览器就不能访问,User-Agent能伪装
# User-Agent可以用不同个,一般在刚刚找网页网址url的Headers的下面就有,当然也可以使用手机的,可网页搜索找到不同的User-Agent,都能进行相应操作
url = 'https://club.jd/comment/productPageComments.action?callback=fetchJSON_comment98&productId=5225346&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&rid=0&fold=1'
# 我们可以简单的解析这个网址,前面不动,后面的我们点击下一页,看会出现什么改变
#https://club.jd/comment/productPageComments.action?callback=fetchJSON_comment98&productId=5225346&score=0&sortType=5&page=1&pageSize=10&isShadowSku=0&rid=0&fold=1
# 我们发现只有page在变化,根据这个我们可以进行翻页爬取,我们先进行第一页的操作
# 先向浏览器发送请求
response = requests.get(url, headers=header)
data = response.text
# 由于爬取下来的data太大,就不展示了
jd = json.loads(data.lstrip('fetchJSON_comment98vv12345(').rstrip(');'))
data_list = jd['comments']
for data in data_list:
     buyer_id = data['id']
     content = data['content']
     time = data['creationTime']
out[1]:
13698518291 19年的愿望终于实现了,买一台MAC电脑,用起来体验真的太棒了,非常流程,开关机超级快,用惯了win的我,习惯了几天,现在可以轻松操作了,电池也非常耐用,可以用8小时以上不成问题,真是工作必备,超级满意! 2020-01-08 16:01:39
13843231135 运行速度:感觉比windows 快,蛮顺畅
屏幕效果:屏幕色彩真的是非常棒,真的无与伦比!!
散热性能:不太懂,但感觉可以,没感觉到发热。
外形外观:看超来超薄,充满立体感
轻薄程度:感觉很薄,但能感觉出的分量充满安全感
其他特色:音效是真的很立体很不错!!!! 2020-02-26 15:20:21
13633612626 双十二买的,没什么太大优惠,观望了很久最后决定在东东家买,不为别的,就为了多花几百块买个放心!
第一次使用苹果电脑先说下感受吧!
电脑稳稳的是正品原装,检查了电池使用次数和外观,也查了序列号确认已安全下车。
开机十秒以内,运行比较流畅,打开多个文档会卡顿数秒。
屏幕分辨率很多人说不行,我觉得很清晰啊,因人而异吧!
喇叭音质也不错,散热的话没有运行大的软件不会很热,操作系统之前在苹果实体店也摸索的差不多了,所以买完直接就上手了,主要用于工作和看看电影吧,除了内存小没别的问题。
最后再说一点,这款电脑不论配置和性价比都适合mac os系统刚入门的小白使用,这款电脑也是苹果笔记本最后一款logo带灯的,也是最后一款带两个独立的usb接口,省去了再去买转换接口的麻烦。
就说这么多,觉得我的评论帮到你的话就给点个赞吧! 2019-12-22 17:14:31
13653768641 做工太精美了 用料考究 超薄 设计 运行速度超快没有别的系统笔记本往外蹦弹窗的烦恼  散热性能也很好 屏幕色彩太逼真 大写的一个牛? 2019-12-27 20:56:28
13904519460 运行速度:运行速度很快   没有卡涩的问题  
屏幕效果:色彩很好  高端大气上档次  
散热性能:散热不错  温度基本没有上升
外形外观:外观很漂亮  很薄  金色的  颜值很不错  
轻薄程度:很薄的  
其他特色:物流很快   用起来很顺手  就是有点用着不习惯  做工精细  质量没得说 2020-03-12 03:12:30
13846695349 昨天买的。今天到的
运行速度:挺快的。手感也好
屏幕效果:屏幕效果也挺好。
散热性能:开了不到三小时不热。挺好
外形外观:非常高
轻薄程度:很薄
其他特色:客服很耐心,很开心的购买体验。一开始以为会有很多毛病。看看后续问题。 2020-02-27 13:21:39
13983041809 book air隔天就到了。喜欢。苹果的用不习惯不太懂,客服非常好,很多不懂的问她们麻烦她们了嘿嘿。??好是好 费钱也是费钱。包装很紧实。办公工作用以及影音的。不打游戏。内存还行。在win系统电脑徘徊很久还是想了想冲苹果的了。喜欢苹果的设计。害。这该死的甜美。真香!然后买了是七天内4.1就降价了几十块。问了客服可以申请退差价的。然后就退了。害。能省则省。?真香,满满的安全感。加油赚钱! 2020-04-01 14:59:46
13832297459 运行速度:比较快,后期还要用久了才看得到出来。
屏幕效果:比旧款好太多,缩短了边,屏幕看起来更清晰明了。
散热性能:一般办公看电视没问题,这个还得看后期使用效果。
外形外观:这个没的说,银色外表很好看,没选灰色金色就是因为还是银色经典色好看,不会腻。
轻薄程度:很薄很薄,我发的有图,这个确实在笔记本电脑中算外观好看的。手感摸起来也舒适。贵有它的道理。客观评价。
其他特色:收到货后,亲们请第一时间当着京东小哥的面拆封,确认能开机,屏幕无破损,再收货,贵的东西要检查好,有啥问题可以当京东小哥哥面直接退货喔。不过我这个收到都检查了,所有都是完好无损的。非常好。当天买的,第二天就到货了,在疫情这么严峻的时刻,京东真的物流非常给力。 2020-02-23 19:02:32
13815988120 试用了速度挺快的,屏幕效果真心不错,外观一如既往的喜欢,目前感觉散热性能比较好,深空灰颜色还是比较大气的,mac 系统使用起来蛮顺手,最主要是安全性高,后续试用中有进一步发现再来加评。
另:京东物流速度很快,特殊期送货还是很积极,谢谢快递小哥,辛苦了。 2020-02-19 11:44:11
13818632332 京東自營の快遞速度很快!
运行速度:竟是蘋果的產品,運行速度肯定超快! 
屏幕效果:畢竟是蘋果的產品,屏幕效果也一級棒!
散热性能:畢竟是蘋果的產品,散熱性能也是很好滴!
外形外观:畢竟是蘋果的產品,玫瑰金尤其的好看哈!
轻薄程度:畢竟是蘋果的產品,真的是太輕太薄咯啦! 2020-02-20 02:48:35

这样,简单的一页评论10条就爬取下来了,若是要翻页爬取的话,可以写一个循环,先写一个爬取10页的:


for page in range(0,10+1):
    url = 'https://club.jd/comment/productPageComments.action?callback=fetchJSON_comment98&productId=5225346&score=0&sortType=5&page={}&pageSize=10&isShadowSku=0&rid=0&fold=1'.format(page) 
    response = requests.get(url, headers=header) 
    data = response.text  
    jd = json.loads(data.lstrip('fetchJSON_comment98vv12345(').rstrip(');')) 
    data_list = jd['comments'] 
    for data in data_list:      
        buyer_id = data['id']      
        content = data['content']      
        time = data['creationTime']

这样我们就能获取苹果笔记本第一个产品的前100条评论。

注意:我们在获取网页响应时,网页编码是比较麻烦的,一般的如果是utf-8,我们就用text,若是乱码,可以用content,获得原始网页,然后为了显示正常,可以解码content.decode('gbk'),解码还是看源码是什么格式的。

当然,我只是简单是爬取了三种属性,大家可以爬取热评词,好评数等等。还可以继续增加页数,或者增加产品数,可以一直用for循环,虽然没有函数简单,但是很清楚。最后的目标就是输入关键词、开始页、终止页,输出相关的属性,比如产品的价格,产品的好评数等等。类似于下图:

这是比较笨的循环方法,我之前比较喜欢,简单粗暴,但为了代码美观,我还是换了函数类的,可以爬取知网信息。之后有时间会继续介绍。

补充说明:这篇文章主要是因为评论是以JS的格式保存在网页中,因此我们需要慢慢找到相应的JS网页。后期有时间,会进一步实现价格、评论爬取等等。

本文标签: 数据源 京东 效率 python