python批量爬取京东手机评论信息及星级

本文详细介绍使用Python批量爬取京东商品评论的方法,包括如何找到评论加载链接、构造请求头及编写爬虫代码,实现评论信息的抓取并保存至Excel。

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

本科生在读,如有问题欢迎指正

爬取京东评论信息:评论信息是动态加载的,所以在商品详情页不能直接爬取评论。
下面以一款手机为例,详细介绍python批量爬取京东评论。

首先进入手机详情页

url: https://item.jd.com/100008348542.html
找到评论区域
image.png
按F12进入浏览器的调试窗户(我用的是谷歌浏览器)
点击network,选择all,接下来点击评论第二页,选择js,可以找到加载评论的链接(正常应该选择all,一点点找,我之前已经找到过链接,直接在js处找了),评论的链接通常含有comment单词,也可以在调试器中搜索找到。
image.png
接下来右键–>copy–>copy link address复制下来评论信息的正式地址,输入浏览器地址栏可以看到评论信息如下,json格式,爬取后可直接提取评论信息。
image.png

接下来开始编写爬虫代码
基本每行代码都有了详细注释,请认真读
# -*- coding:utf-8 -*-

import requests
import json
import time
import random
import xlwt

# 创建excell保存数据
file = xlwt.Workbook(encoding='utf-8')
sheet = file.add_sheet('data', cell_overwrite_ok=True)

for i in range(105):    #for循环遍历,批量爬取评论信息
    try:
        #构造url,通过在网页不断点击下一页发现,url中只有page后数字随页数变化,批量遍历就是根据这个
        #url去掉了callback部分,因为这部分内没有有用数据,并且不去掉后面转换为json格式会有问题
        url = 'https://club.jd.com/comment/productPageComments.action?&productId=100008348542&score=3&sortType=5&page=%s&pageSize=10&isShadowSku=0&rid=0&fold=1' % i
        #构造headers
        headers = {
            'user-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/65.0.3325.181 Safari/537.36',
            'referer': 'https://item.jd.com/100008348542.html'
        }
        response = requests.get(url, headers=headers)
        data = json.loads(response.text)  # 字符串转换为json数据
        page = i * 10   #这里是存储在excell中用到的,因为每爬取一个url会有10条评论,占excell 10列
        if(data['comments']):
            for temp in data['comments']:
                sheet.write(page, 0, page)  #序号
                sheet.write(page, 1, temp['content'])   #评论
                sheet.write(page, 2, temp['score']) #用户打的星级
                page = page + 1
            print('第%s页爬取成功' % i)
        else:
            print('.............第%s页爬取失败' %i)
            file.save('F:\\t\\t.xlsx') #保存到本地

    except Exception as e:
        print('爬取失败,url:%s'%url)
        print('page是%s'%i)
        continue
    time.sleep(random.random() * 5) #每循环一次,随机时间暂停再爬
file.save('F:\\t\\t.xlsx')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值