• 用Python抓取京东商品评论


    分析可能存在的失效时,我们强调要基于功能分析失效,每种功能可以思考七种类别失效模式,从而考虑比较全面。

    这背后其实是对可靠性概念的理解,可靠性的定义:产品在规定的条件下和规定的时间内,完成规定功能的能力称为可靠性。

    从概念出发,只有明确了功能是什么,才能谈失效是什么。

    但很多时候,在各类约束下(如时间、成本等),人们普遍不愿意考虑这么多,只想总结历史经验、市场数据,把主要问题解决。这就需要一些数据支撑。

    今年我换了个产品品类,搞咖啡机。以前没怎么接触过这个品类,因此我之前规划了一个事项是品类品质调研,其中一个途径是从网上搜集差评进行分析。有一些评论采集工具可以选择使用,但尝试之后,都觉得不尽人意,还是自己写爬虫更快。

    相对来说我比较认可京东一些,至少买这么多次东西,即使给差评也没人联系我删除。所以写了个爬虫,从京东抓数据。程序比较通用,只需要把商品编号列入代码中的skulist里,就可以抓取了。

    运行效果:

    图片

    附参考代码:

    1. #咖啡机京东电商差评抓取
    2. #王永平 2023.9.24
    3. import requests
    4. import json
    5. import time
    6. import openpyxl
    7. #模拟浏览器发送请求并获取响应结果
    8. import random
    9. #https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&myproductId=100006896226&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1
    10. headers = {
    11. 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.106 Safari/537.36'
    12. }
    13. #评论的页面
    14. mp = 0
    15. #需要抓的商品编码,这些编码的获得可以另外通过爬虫获取,看自己的需求
    16. skulist = [
    17. '100047982367',
    18. '100059397465',
    19. '4245271',
    20. '14990496145',
    21. '48402170942',
    22. ]
    23. def get_comments(myproductId,page):
    24. #score=0:全部评论,score=1:差评,score=2:中评,score=3:好评
    25. url='https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId='+myproductId+'&score=1&sortType=5&page='+str(mp)+'&pageSize=10&isShadowSku=0&fold=1'.format(myproductId,page) # 商品id
    26. resp=requests.get(url,headers=headers)
    27. s1=resp.text.replace('fetchJSON_comment98(','')
    28. s=s1.replace(');','')
    29. #将str类型的数据转成json格式的数据
    30. res=json.loads(s)
    31. return res
    32. def get_max_page(myproductId):
    33. dic_data=get_comments(myproductId,0) #向服务器发送请求,获取字典数据
    34. return dic_data['maxPage']
    35. def get_info(myproductId):
    36. global mp
    37. lst=[] #用于存储提取到的商品数据
    38. for page in range(0,get_max_page(myproductId)): #循环执行次数,商品的最大评论页数为get_max_page(myproductId)
    39. #获取每页的商品评论
    40. print("当前评论页面:"+str(page))
    41. mp=page
    42. comments=get_comments(myproductId,page)
    43. comm_lst=comments['comments']
    44. #遍历评论
    45. for item in comm_lst:
    46. content=item['content'] #评论内容
    47. print("差评+1:"+content)
    48. lst.append([content])
    49. time.sleep(3) #延迟时间,防止程序执行速度过快被封IP
    50. save(lst)
    51. def save(lst):
    52. #加载文件
    53. wk = openpyxl.load_workbook('coffee.xlsx')
    54. #获取活动工作表
    55. sheet=wk.active
    56. sheet.append(['coffee_sku',myproductId])
    57. #遍历列表,将列表中的数据添加到工作表中,每条数据在Excel中是一行
    58. for item in lst:
    59. sheet.append(item)
    60. wk.save('coffee.xlsx')
    61. print("----------分割线------------")
    62. if __name__ == '__main__':
    63. for i in range(0,len(skulist)):
    64. myproductId = skulist[i]
    65. print("当前第"+str(i+1)+"款咖啡机,商品编号:"+myproductId)
    66. print("----------分割线------------")
    67. get_info(myproductId)

  • 相关阅读:
    【ASP.NET Core】在Blazor中获取 HTTP 上下文信息
    终于等到你!Franka Emika新款机器人FP3震撼发布,带来全新生态,重新定义协作机器人!
    基于RabbitMQ的模拟消息队列之五——虚拟主机设计
    测试平台项目部署二(手动部署改成Dockerfile)
    用CHAT写APP的权限需求
    Python机器学习、深度学习提升气象、海洋、水文领域实践应用
    《 公共关系学 》综合复习资料
    ChatGPT自媒体创作秘籍:高效生成优质文章和视频
    springboot证书管理系统的设计与实现毕业设计源码162317
    基本网络知识的介绍
  • 原文地址:https://blog.csdn.net/weixin_42878250/article/details/133691704