利用Python爬取京东生鲜的商品数据和评论数据

首先简明,爬取 商品数据 采用selenium操作chrome模拟浏览器动态渲染页面+ajax加载评论

具体的看下面的说明

所需内容:
商品小分类名称(苹果,橙子等)
商品名称(烟台红富士苹果 5kg 一级铂金大果 单果230-320g 新鲜水果)
商品总评论数量
商品好评率
评论星级
评论长度
评论点赞数量
评论回复数量
评论文本内容
评论者等级
评论发表距抓取的天数(days)
抓取部分带有追评的评论:追评文本内容、追评与初评相距时间

以上是这次任务的需求

这个页面大部分的信息都是动态渲染出来的,所以要用selenium

可以看到,要找到评论不是去常见的HXR而是JS,peoduct开头的就是评论信息

Request URL: https://sclub.jd.com/comment/…
Request Method: GET
Status Code: 200
Remote Address: 117.148.129.129:443
Referrer Policy: no-referrer-when-downgrade

在这个url中,查询字符串中的大部分参数不是必须的

在学习过程中有什么不懂得可以加我的
python学习交流扣扣qun,784758214
群里有不错的学习视频教程、开发工具与电子书籍。
与你分享python企业当下人才需求及怎么从零基础学习好python,和学习什么内容

def make_url(baseurl, page=0, score=0, productId='3756271'):
    data1 = {
        'callback': 'fetchJSON_comment98vv7490',
        'productId': productId,
        'score': score,
        'sortType': '6',
        'page': page,
        'pageSize': '10',
        'isShadowSku': '0',  #
        'fold': '1',  #
    }
    url = baseurl + urlencode(data1)
    return url

具体的可以在代码中体现。

下面我要贴代码了,坐稳扶好,不想复制的话,可以去我的github上下载。

# https://www.jd.com/allSort.aspx
import requests
from pyquery import PyQuery as pq
from prettyprinter import cpprint
import json
from urllib.parse import urlencode
from selenium import webdriver
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
import time
import csv
import datetime
import sys

def get_ajax(url):
    headers = {
        'referer': 'https://item.jd.com/3756271.html',  # referer: https://item.jd.com/3756271.html
        'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36',
    }
    response = requests.get(url, headers=headers)
    return json.loads(response.text[26:-2])

def make_url(baseurl, page=0, score=0, productId='3756271')
  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值