京东商品评论自动采集【仅学习】
▍ 方案特性说明
- 技术参数:
- 混合使用XPath定位(//div/ul/li)
- 复合式CSS选择器翻页控制
- 采集字段包含:
用户身份
、地理信息
、时间戳
、产品特征
、评价数据
五大维度 - 输出格式:Excel直读CSV(utf-8-sig编码)
▍ 环境预配置要求
# 保持原始配置代码不变
from DrissionPage import ChromiumOptions
path = r'C:\Program Files\Google\Chrome\Application\chrome.exe'
ChromiumOptions().set_browser_path(path).savunxi
▍ 原生代码实现
# 导入模块
from DrissionPage import ChromiumPage
# 导入csv
import csv
# 创建文件
f = open('data.csv','w',encoding='utf-8-sig',newline='')
csv_writer = csv.DictWriter(f,fieldnames=[
'昵称',
'地区',
'日期',
'产品',
'评分',
'评论'
])
csv_writer.writeheader()
# 打开浏览器
dp = ChromiumPage()
# 监听数据包
dp.listen.start('https://api.m.jd.com/?appid=item-v3&functionId=pc_club_productPageComments&client=')
# 访问网页
dp.get('https://item.jd.com/10133431142245.html')
dp.ele('x://*[@id="detail"]/div[1]/ul/li[5]').click()
for page in range(1, 11):
print(f'正在采集第{page}页的评论数据')
# 等待数据包加载
resp = dp.listen.wait()
# 获取响应数据
json_data = resp.response.body
print(json_data)
comments = json_data['comments']
# 提取所需数据
for index in comments:
dict = {
'昵称': index['nickname'],
'地区': index['location'],
'日期': index['creationTime'],
'产品': index['productColor'],
'评分': index['score'],
'评论': index['content'],
}
print(dict)
csv_writer.writerow(dict)
# 翻页
dp.ele('css:.ui-pager-next').click()
▍ 可研究方向
- [ ] 双实例初始化必要性验证
- [ ] 混合定位策略稳定性测试
- [ ] 接口参数动态生成机制
- [ ] 页面DOM结构版本适配
⚠️ 注意事项
- 遵守网站爬虫协议,控制请求频率
- 企业级反爬可能需添加
sleep
间隔 - CSS选择器随网站改版可能需要更新
- 推荐在本地环境先测试再正式运行
觉得有用请点赞 👍 收藏 ⭐ 关注 ➕
💡 免责声明:本代码仅限学习交流,不得用于商业用途,数据抓取请遵守网站相关规定。