【爬虫】抓取京东商品列表具体商品的各种评论数量-2019年6月可用

本文介绍了如何抓取京东商品页面的评论数量,由于页面使用异步渲染,需通过分析网络请求获取JSON数据。通过获取商品ID,构造URL并发送请求,解析JSON以获取评论详情。原始代码存在数组越界问题,已进行修正,现能成功爬取2页共120条评论。注意不同商品类别页面结构可能略有差异。
摘要由CSDN通过智能技术生成

本来只是想简单地抓个好评数,在一开始的搜索结果页面上

然后发现抓不到,用lxml里面etree解析的是空的

问题就变烦了,问了一下前同事,告诉我说是异步渲染的

在这里找到了所有有关评论的请求:

请求得到的是json格式数据:

url明显是商品id拼起来的,所以就要先获取整个页面上所有的商品id

pids =  html1.xpath('//li[contains(@class,"gl-item")]/attribute::data-pid')

然后拼个url出来,发请求,最后解析一下json就可以了

'''抓评论'''
pids =  html1.xpath('//li[contains(@class,"gl-item")]/attribute::data-pid')
comment_url = "https://club.jd.com/comment/productCommentSummaries.action?referenceIds="
for pid in pids:
    comment_url += pid + ","
comment_r = requests.get(comment_url)
p_comment = []
for comment in comment_r.json()["CommentsCount"]:
    p_comment.append([comment["CommentCount"],comment["AverageScore"],comment["GoodCount"],
                     comment["DefaultGoodCount"],comment["GoodRate"],comment["AfterCount"],
                     comment["VideoCount"],comment["PoorCount"],comment["GeneralCount"]]) 
    # 总评数,平均得分,好评数,默认好评,好评率,追评数,视频晒单数,差评数,中评数

原程序参照这个写的https://blog.csdn.net/xing851483876/article/details/80817578#commentsedit

但评论那边有问题,就是底下回复里提到的数组越界(因为p_comment是空的)

修改之后完整代码如下(只爬取了2页共120条):

import requests
from lxml import etree
import time
import csv
#定义函数抓取每页前30条商品信息
def crow_first(n):
    #构造每一页的url变化
    url='https://search.jd.com/Search?keyword=%E6%89%8B%E6%9C%BA&enc=utf-8&qrst=1&rt=1&stop=1&vt=2&cid2=653&cid3=655&page='+str(2*
  • 15
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 33
    评论
Python爬虫抓取京东商品通常涉及以下几个步骤: 1. **安装必要的库**: 首先,你需要安装一些用于网络请求(如requests)、解析HTML(如BeautifulSoup或 lxml)和处理据的库,比如`requests`, `bs4` 或者 `html.parser`。 2. **分析网页结构**: 打开京东商品页面,查看HTML代码,找到包含商品信息的标签元素。这可能包括标题、价格、图片URL、描述等。理解这些信息如何通过JavaScript动态加载是关键,因为很多现代网站会用AJAX技术来更新内容。 3. **发送请求并获取HTML**: 使用`requests.get()`函发送GET请求到商品详情页,获取返回的HTML源码。如果遇到需要登录或有反爬机制的情况,可能还需要模拟登录或设置User-Agent等头信息。 4. **解析HTML**: 使用BeautifulSoup或其他解析器,解析HTML源码,提取出所需的据。根据元素的CSS选择器或XPath表达式定位商品信息。 5. **据存储**: 将抓取到的据(如字典或列表)保存到本地文件(CSV、JSON、据库等),或者直接插入到据库中,以便后续分析和展示。 6. **异常处理**: 爬虫过程中可能会遇到各种问题,如网络中断、服务器响应错误等,需要添加适当的错误处理代码。 7. **遵守网站规则**: 在编写爬虫时,务必遵守京东或其他网站的服务条款,尊重robots.txt协议,并尽量减少对服务器的压力,避免被封IP。
评论 33
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值