Python如何运用爬虫爬取京东商品评论
admin 阅读: 2024-03-21
后台-插件-广告管理-内容页头部广告(手机) |
寻找数据真实接口
打开京东商品网址(添加链接描述) 查看商品评价。我们点击评论翻页,发现网址未发生变化,说明该网页是动态网页。
我们在浏览器右键点击“检查”,,随后点击“Network”,刷新一下,在搜索框中输入”评论“,最终找到网址(url)。我们点击Preview,发现了我们需要找的信息。
请求网页
使用requests请求数据库,请求方法是get
我们查看Headers发现请求方法为get请求,查看Payload并点击,即为get请求参数,完整代码如下所示。
import requests import pandas as pd items=[] header = {'User-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 SLBrowser/8.0.1.4031 SLBChan/105'} url=f'https://api.m.jd.com/?appid=item-v3&functionId=pc_club_productPageComments&client=pc&clientVersion=1.0.0&t=1684832645932&loginType=3&uuid=122270672.2081861737.1683857907.1684829964.1684832583.3&productId=100009464799&score=0&sortType=5&page=1&pageSize=10&isShadowSku=0&rid=0&fold=1&bbtf=1&shield=' response= requests.get(url=url,headers=header)- 1
- 2
- 3
- 4
- 5
- 6
解析网页
由于网页返回的是json格式数据,获取我们所需要的评论内容、评论时间,我们通过字典访问即可。
先嵌入字典解析库,通过访问字典,一层一层将数据提取到一页的部分信息,编辑代码。
json=response.json() data=json['comments'] for t in data: content =t['content'] time =t['creationTime']- 1
- 2
- 3
- 4
- 5
通过循环,爬取所有页面的评论数据
翻页爬取的关键是找到真实地址的“翻页”规律。
我们分别点击第1页、第2页、第3页,发现不同页码的除了page参数不一致,其余相同。
第1页的“page”是1,第2页的“page”是2,第2页的“page”是2,以此类推。 我们嵌套一个For循环,并通过pandas存储数据。运行代码让其自动爬取其他页面的评论信息,并储存t.xlsx的文件中。 所有代码如下:
import requests import pandas as pd items=[] for i in range(1,20): header = {'User-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36 SLBrowser/8.0.1.4031 SLBChan/105'} url=f'https://api.m.jd.com/?appid=item-v3&functionId=pc_club_productPageComments&client=pc&clientVersion=1.0.0&t=1684832645932&loginType=3&uuid=122270672.2081861737.1683857907.1684829964.1684832583.3&productId=100009464799&score=0&sortType=5&page={i}&pageSize=10&isShadowSku=0&rid=0&fold=1&bbtf=1&shield=' response= requests.get(url=url,headers=header) json=response.json() data=json['comments'] for t in data: content =t['content'] time =t['creationTime'] item=[content,time] items.append(item) df = pd.DataFrame(items,columns=['评论内容','发布时间']) df.to_excel(r'C:\Users\蓝胖子\Desktop\t.xlsx',encoding='utf_8_sig')- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
最后,得到爬取的数据结果如下:
我整理了Python爬虫的学习资料,拿出来和大家分享,有需要的朋友可以扫描下方二维码进行领取哦
一、学习大纲
二、开发工具
三、Python基础资料
四、实战资料
今天的分享就到这里了,觉得有用的话,别忘了关注我哦
声明
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。
在线投稿:投稿 站长QQ:1888636
后台-插件-广告管理-内容页尾部广告(手机) |