用python3爬取天猫商品评论并分析(1)

本文介绍了使用Python3爬取天猫商品评论并进行数据分析的过程。内容涉及数据采集、数据清洗、数据存储以及在MySQL和SPSS中的初步分析。在数据清洗环节,特别提到了如何处理逗号问题。通过分析,发现了销量高峰和用户偏好的一些趋势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  在上一篇文章我们已经完成数据的采集,并将数据存储在mysql,现在我们来继续后面的数据分析工作,先放出项目流程:

0. 主要流程

0. 数据采集

0. 目标网址获取

1. 爬虫框架选用

注:了解这一步请登录https://www.jianshu.com/p/2b015d289083

    http://blog.youkuaiyun.com/weixin_41716128/article/details/79306923

1. 数据处理

由于某种原因上一篇采集的960条记录不小心给我删除了--_--(而且没有备份)

 

因此我重新再采集了一次,并且这次只采集只有有追加评论的订单。如图:


对比一下抓取的数据与网页基本一致。

0. 数据存储

数据库是mysql5.7版本,配置与安装数据库这里就不介绍了,度娘很多教材呢!

1. 数据清洗

好了进入正题,我们开始整理数据。初步观察数据是比较完整的,没有什么缺失值。但是要专业分析sql代码还是需要敲下!如下:

select id from iphonex where 当天评论 is NULL or 追加评论 is NULL;

#选择评论为空的id

update iphonex set 当天评论=replace(当天评论,'此用户没有填写评论!','0');

#消除 ’此用户没有填写评论!’ 的字符值

update iphonex set 当天评论=replace(当天评论,',',',');

update iphonex set 追加评论=replace(追加评论,',',',');

#把英文的逗号改为中文格式,方便以后导出csv格式

update iphonex set 机身颜色=机型;

update iphonex set 存储容量=机型;

update iphonex set 机身颜色=replace(机身颜色,'网络类型:无需合约版;机身颜色:','');

update iphonex set 机身颜色=replace(机身颜色,';存储容量:256GB','');

update iphonex set 机身颜色=replace(机身颜色,';存储容量:64GB','');

update iphonex set 存储容量=replace(存储容量,'网络类型:无需合约版;机身颜色:银色;存储容量:','');

update iphonex set 存储容量=replace(存储容量,'网络类型:无需
### 使用 Python 编写爬虫抓取天猫商品评论数据 为了实现这一目标,可以采用两种主要方法:一种是直接解析网页 HTML 来获取所需的数据;另一种则是利用官方提供的 API 接口。鉴于天猫提供了专门用于访问商品评论的 API,推荐优先考虑后者。 #### 方法一:调用天猫商品评论数据接口 通过调用天猫提供的商品评论数据接口能够更高效地获得结构化的 JSON 数据,减少开发难度提高效率。具体流程如下: - 需要先注册成为开发者账号,申请相应的权限以便于合法使用此服务[^2]。 ```python import requests def get_tmall_comments(product_id, page=1): url = f"https://api.tmall.com/comment?product_id={product_id}&page={page}" headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)', # 如果有其他必要的请求头参数也应在此处补充 } response = requests.get(url=url, headers=headers) data = response.json() comments = [] if "comments" in data and isinstance(data["comments"], list): for item in data['comments']: comment_info = { 'content': item.get('content'), 'date': item.get('created_at') } comments.append(comment_info) return comments ``` 这种方法依赖于天猫平台所提供的开放接口文档说明来进行编码工作,在实际应用过程中可能还需要处理分页逻辑以及错误异常情况等细节问题。 #### 方法二:基于 Selenium 的 Web 页面自动化交互方式 如果无法直接使用 API 或者希望模拟真实用户的浏览行为,则可以选择借助浏览器驱动工具如Selenium来完成页面加载后的动态内容读取任务。这种方式虽然相对复杂一些,但对于某些特殊场景下的需求来说更为灵活多变。 ```python from selenium import webdriver from time import sleep options = webdriver.ChromeOptions() options.add_argument('--headless') # 设置无界面模式运行Chrome浏览器实例 driver = webdriver.Chrome(options=options) def fetch_product_reviews_by_selenium(product_url): driver.get(product_url) sleep(3) # 等待页面完全渲染完毕 review_elements = driver.find_elements_by_css_selector('.tm-rate-list .rate-content') reviews_text = [element.text.strip() for element in review_elements] return reviews_text if __name__ == '__main__': product_link = input("请输入想要抓取评论的商品链接:") fetched_reviews = fetch_product_reviews_by_selenium(product_link) print(fetched_reviews[:5]) # 输出前五个评价作为示例展示 ``` 需要注意的是,当采取第二种方案时,应当遵循网站的服务条款规定,合理控制请求频率以免给服务器带来过负担或触发反爬机制而被封禁IP地址等问题的发生。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值