爬虫手把手教你爬取10页京东商品评论(文章最后附完整代码)
爬取京东商城上的食品评论:王小卤
废话不多说直接开始
打开并登录京东商城:京东,在主页面搜索“王小卤”,点击第一个商品,查看商品评价,选择“只看当前商品评价”。
1、按F12跳出开发者工具;
2、点击Network;
3、刷新网址;刷新之后可以看到在左侧的Name里面会出现很多信息
4、点击Preview
找到评论数据,如下图
接着切换到Headers窗口,在这里能找到所需url,请求头所需的内容如cookie,user-agent等内容,这里我们仅需要url和user-agent
将url和user-agent分别填入请求网址和请求头中
url = 'https://api.m.jd.com/?appid=item-v3&functionId=pc_club_skuProductPageComments&client=pc&clientVersion=1.0.0&t=1696496033135&loginType=3&uuid=122270672.16964955125501525477821.1696495513.1696495513.1696495707.2&productId=100014336380&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1&bbtf=&shield='
time.sleep(1) # 防止操作过快,网站防爬
# 请求头
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36'
}
# 发送请求
response = requests.get(url=url, headers=headers)
接着查看网络请求的响应信息,找到关键字
使用正则表达式指定要匹配的字符。r'"content":"(.*?)",'表示要查找的内容应该以"content":"开头,以",结尾。.*?表示匹配任意字符(除了换行符)零次或多次,使用非贪婪模式,即尽可能少地匹配字符。
#评论的ID和内容
comments = re.findall(r'"content":"(.*?)",', response.content.decode('gbk'))
names = re.findall(r'"nickname":"(.*?)",', response.content.decode('gbk'))
抓取10页
for page in range(10): # 爬取10页评论数据
修改请求网址中page的值:
写入Excel表,结果如下图所示:
完整代码
import requests
import re
import time
import openpyxl
comments_list = []
names_list = []
for page in range(10): # 爬取10页评论数据
# 请求网址
url = 'https://api.m.jd.com/?appid=item-v3&functionId=pc_club_skuProductPageComments&client=pc&clientVersion=1.0.0&t=1696496033135&loginType=3&uuid=122270672.16964955125501525477821.1696495513.1696495513.1696495707.2&productId=100014336380&score=0&sortType=5&page='+str(page)+'&pageSize=10&isShadowSku=0&fold=1&bbtf=&shield='
time.sleep(1) # 防止操作过快,网站防爬
# 请求头
headers = {
'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/102.0.0.0 Safari/537.36'
}
# 发送请求
response = requests.get(url=url, headers=headers)
# 解决网页数据乱码
response.encoding = 'gbk'
#评论的ID和内容
comments = re.findall(r'"content":"(.*?)",', response.content.decode('gbk'))
for comment in comments:
comments_list.append(comment)
names = re.findall(r'"nickname":"(.*?)",', response.content.decode('gbk'))
for name in names:
names_list.append(name)
print(comments_list)
print(names_list)
workbook=openpyxl.Workbook()
sheet=workbook.active
sheet['A1']='ID'
sheet['B1']='评论内容'
for i, value in enumerate(names_list, start=2):
sheet.cell(row=i, column=1).value=value
for i, value in enumerate(comments_list, start=2):
sheet.cell(row=i, column=2).value=value
workbook.save('王小卤.xlsx')
喜欢的话点个赞再走吧~~~
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!






