当前位置: 首页 > news >正文

python爬虫获取手机评论数据 - f

以下是包含 JSON文件存储功能 的完整代码,已标注好你需要修改的3处核心位置(用 # 需修改 标注):

import requests
from bs4 import BeautifulSoup
import time
import json  # 新增:用于写入JSON文件# 1. 配置请求头(模拟浏览器,避免被识别为爬虫)
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36",  # 需修改:替换成你自己的User-Agent"Referer": "https://item.jd.com/"
}# 2. 定义抓取函数(单页评论)
def get_phone_comments(page, product_id):# 京东评论接口url = f"https://club.jd.com/comment/productPageComments.action?productId={product_id}&score=0&sortType=5&page={page}&pageSize=10"try:time.sleep(1.5)  # 延迟,反爬response = requests.get(url, headers=headers)response.raise_for_status()  # 捕获请求错误data = response.json()# 提取评论核心信息comments = []for comment in data["comments"]:comment_info = {"用户": comment["nickname"],"评分": comment["score"],"评论时间": comment["time"],"评论内容": comment["content"].strip()}comments.append(comment_info)return commentsexcept Exception as e:print(f"第 {page+1} 页抓取失败:{str(e)}")return []# 3. 主程序(多页抓取 + 写入JSON)
if __name__ == "__main__":# 核心配置:3处需修改的位置product_id = "100062815823"  # 需修改:替换成目标手机的商品IDtotal_pages = 5  # 需修改:调整要抓取的总页数(建议先1-2页测试)json_file_name = "手机评论数据.json"  # 可选修改:自定义JSON文件名称all_comments = []# 循环抓取多页for page in range(total_pages):print(f"正在抓取第 {page+1} 页...")page_comments = get_phone_comments(page, product_id)all_comments.extend(page_comments)# 打印抓取结果print(f"\n抓取完成!共获取 {len(all_comments)} 条手机评论")# 写入JSON文件with open(json_file_name, "w", encoding="utf-8") as f:json.dump(all_comments, f, ensure_ascii=False, indent=2)print(f"评论已保存到【{json_file_name}】(与代码文件同一目录)")

再次明确需你手动修改的3处(缺一不可)

  1. User-Agent:百度搜索“我的User-Agent”,复制当前浏览器的标识,替换代码中对应的值(避免被识别为爬虫)。
  2. product_id:打开京东目标手机商品页,从URL中提取数字ID(如 https://item.jd.com/123456789.html 中的 123456789),替换示例ID。
  3. total_pages:根据需求调整页数(如想抓3页就改成 3),初期建议先设为 1 测试是否能正常生成JSON文件。
http://www.jsqmd.com/news/73277/

相关文章:

  • Java Web 养老院管理系统系统源码-SpringBoot2+Vue3+MyBatis-Plus+MySQL8.0【含文档】
  • 用Playwright替代Selenium:更快更现代的浏览器自动化实战指南
  • AXI-A7.4.1 Overview
  • 嚴重似情侶講分手
  • 如有可能,你應該和本就幸福的人結婚
  • SpringBoot+Vue 一款BS美食网站平台完整项目源码+SQL脚本+接口文档【Java Web毕设】
  • 前端岗来了个男生,没两天就被劝退了
  • 以太网温湿度传感器五重告警方式如何协同工作?
  • 多场景应用支持, AgenticHub如何根据业务需求定制智能体
  • 总结咯
  • 上手RAG 四步构建最小可行系统(MVP) - yi
  • 生活大於工作
  • MATLAB基于LOO-PSO-KELM的微电阻点焊质量预测与工艺优化
  • Spring Boot + Kafka 实战:从入门到避坑,小白也能轻松上手!
  • Swift资源管理工具版本升级完整指南:从传统集成到现代插件化配置
  • 活在時光裏的父母
  • 【专家亲授】C++26与传统头文件协同工作:企业级编译架构设计
  • 人工智能之数学基础 线性代数:第一章 向量与矩阵
  • 至少我還有寫作的自由
  • COMSOL介电金属多层膜结构宽谱吸收器:文献复现与吸收特性研究
  • 53
  • LMMS音频插件完全指南:从入门到精通的格式选择策略
  • WordPress插件高危漏洞:Google评论小工具存储型XSS(CVE-2025-9436)技术剖析与修复指南
  • 破局流量焦虑:解码福州GEO服务新格局,SHEEP-GEO如何用技术重构行业天花板?
  • 再谈ST表
  • Jetson Secure Boot 完整实战指南:从 Fuse Key → Boot Chain → 验签代码路径的源码级解析
  • miniconda anaconda下载
  • 滑动窗口
  • 基于像素流的多游戏引擎实时云渲染系统设计与实现
  • 机械臂的舞蹈从数学开始——xArm6运动学拆解日记