python爬虫爬取京东商品评论
时间: 2025-01-15 17:09:00 浏览: 103
### 使用Python爬虫获取京东商品评论数据
为了从京东平台抓取商品的用户评价,需先准备好相应的开发环境[^1]。这通常意味着安装必要的库文件,比如`requests`用于发起HTTP请求,`BeautifulSoup`或`lxml`用于解析HTML文档,还有可能需要`pandas`处理和保存数据。
在实际操作过程中,当访问特定的商品详情页时,可以通过浏览器开发者工具(F12)监控网络活动来识别加载评论区所使用的API接口及其传递参数[^2]。这些参数一般包括但不限于产品ID、分页索引等信息,它们帮助定位到具体的评论记录集合。
一旦确定了API端点URL模式及所需查询字符串后,就可以利用Python脚本来模拟发送GET/POST请求,并接收服务器返回的内容。由于返回的是JSON格式的数据流,因此要调用`.json()`方法将其转换成易于处理的对象结构以便后续提取有用字段,如用户名、评分星级、发表时间戳以及具体内容描述等[^4]。
下面是一个简化版的例子展示如何构建这样的爬虫:
```python
import requests
from pandas import DataFrame
def fetch_reviews(product_id, page=0):
url = f"https://api.m.jd.com/comment/skuProductPageComments?callback=fetchJSON_comment98&productId={product_id}&score=0&sortType=5&page={page}&pageSize=10"
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)',
'Referer': f'https://item.jd.com/{product_id}.html'
}
response = requests.get(url=url, headers=headers).text.replace('fetchJSON_comment98(', '').replace(');', '')
data = eval(response)
reviews = []
for item in data['comments']:
review = {
"username": item["nickname"],
"rating": item["score"],
"date": item["creationTime"],
"content": item["content"]
}
reviews.append(review)
return reviews
if __name__ == "__main__":
product_id = input("请输入想要抓取评论的产品编号:")
all_reviews = []
try:
for i in range(10): # 假设只抓取前十页
new_reviews = fetch_reviews(product_id, i)
if not new_reviews:
break
all_reviews.extend(new_reviews)
df = DataFrame(all_reviews)
df.to_csv(f"{product_id}_reviews.csv", index=False, encoding='utf_8_sig')
print("成功导出了CSV文件.")
except Exception as e:
print(e)
```
此代码片段展示了基本的工作流程:定义函数`fetch_reviews`接受商品ID和其他可选参数;设置合适的HTTP头以模仿真实用户的浏览行为;向指定地址发出请求并解析得到的结果;最后将收集来的多条评论汇总至列表再转存为CSV表格形式供进一步分析使用。
阅读全文
相关推荐


















