当前位置:   article > 正文

爬虫手把手教你爬取10页京东商品评论(文章最后附完整代码)_京东商品评论爬虫

京东商品评论爬虫

爬取京东商城上的食品评论:王小卤

废话不多说直接开始

打开并登录京东商城:京东,在主页面搜索“王小卤”,点击第一个商品,查看商品评价,选择“只看当前商品评价”。

1、按F12跳出开发者工具;

2、点击Network;

3、刷新网址;刷新之后可以看到在左侧的Name里面会出现很多信息

4、点击Preview

找到评论数据,如下图

接着切换到Headers窗口,在这里能找到所需url,请求头所需的内容如cookie,user-agent等内容,这里我们仅需要urluser-agent

将url和user-agent分别填入请求网址和请求头中

  1. 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='
  2. time.sleep(1) # 防止操作过快,网站防爬
  3. # 请求头
  4. headers = {
  5. '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'
  6. }
  7. # 发送请求
  8. response = requests.get(url=url, headers=headers)

接着查看网络请求的响应信息,找到关键字

 使用正则表达式指定要匹配的字符。r'"content":"(.*?)",'表示要查找的内容应该以"content":"开头,以",结尾。.*?表示匹配任意字符(除了换行符)零次或多次,使用非贪婪模式,即尽可能少地匹配字符。

  1. #评论的ID和内容
  2. comments = re.findall(r'"content":"(.*?)",', response.content.decode('gbk'))
  3. names = re.findall(r'"nickname":"(.*?)",', response.content.decode('gbk'))

抓取10页

for page in range(10):  # 爬取10页评论数据

修改请求网址中page的值:

写入Excel表,结果如下图所示:

完整代码

  1. import requests
  2. import re
  3. import time
  4. import openpyxl
  5. comments_list = []
  6. names_list = []
  7. for page in range(10): # 爬取10页评论数据
  8. # 请求网址
  9. 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='
  10. time.sleep(1) # 防止操作过快,网站防爬
  11. # 请求头
  12. headers = {
  13. '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'
  14. }
  15. # 发送请求
  16. response = requests.get(url=url, headers=headers)
  17. # 解决网页数据乱码
  18. response.encoding = 'gbk'
  19. #评论的ID和内容
  20. comments = re.findall(r'"content":"(.*?)",', response.content.decode('gbk'))
  21. for comment in comments:
  22. comments_list.append(comment)
  23. names = re.findall(r'"nickname":"(.*?)",', response.content.decode('gbk'))
  24. for name in names:
  25. names_list.append(name)
  26. print(comments_list)
  27. print(names_list)
  28. workbook=openpyxl.Workbook()
  29. sheet=workbook.active
  30. sheet['A1']='ID'
  31. sheet['B1']='评论内容'
  32. for i, value in enumerate(names_list, start=2):
  33. sheet.cell(row=i, column=1).value=value
  34. for i, value in enumerate(comments_list, start=2):
  35. sheet.cell(row=i, column=2).value=value
  36. workbook.save('王小卤.xlsx')

喜欢的话点个赞再走吧~~~

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小丑西瓜9/article/detail/451102
推荐阅读
相关标签
  

闽ICP备14008679号