Python动态爬虫爬取京东商品评论[通俗易懂]

Python动态爬虫爬取京东商品评论[通俗易懂]Python动态爬虫爬取京东商品评论1.概述京东商城是Python爬虫初学者试手的经典平台,反爬虫程度较低,但评论采取了动态加载的方式,爬取京东商品评论是学习动态爬虫的一个极佳方法。动态爬虫,即针对动态加载JSON文件网页的爬虫,其原理与静态爬虫没有本质区别,只是不爬取所见的静态目标网页,而是寻找该网页所加载的JSON文件,爬取JSON文件中的内容。2.目标观察观察京东具体商品评论页面:点击商品评价页:发现商品评价翻页的url不改变,可推测出其采用动态加载的方式,同时,会发现直接获取该

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

Python 动态爬虫爬取京东商品评论

1. 概述

京东商城是Python爬虫初学者试手的经典平台,反爬虫程度较低,但评论采取了动态加载的方式,爬取京东商品评论是学习动态爬虫的一个极佳方法。

动态爬虫,即针对动态加载JSON文件网页的爬虫,其原理与静态爬虫没有本质区别,只是不爬取所见的静态目标网页,而是寻找该网页所加载的JSON文件,爬取JSON文件中的内容。

2.目标观察

观察京东具体商品评论页面:

在这里插入图片描述

发现可能是评论内容文件,点击查看,发现确实如此,复制下该文件的url:

从上文中我们获取到了商品评论的动态加载文件的url,接下来我们至需要对该文件进行get爬取即可。

同静态爬虫类似,构造header,输入网址,并使用get进行请求,下载其文本内容。

header = { 
   "user-agent":'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'}
url = "https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=100021400874&score=0&sortType=5&page=2&pageSize=10&isShadowSku=0&rid=0&fold=1"
time.sleep(random.random())
content = requests.get(url = url,headers = headers).text

然后我们观察get到的content内容,发现并不是静态网页的HTML,而是一种类似于字典的文本内容,这即是JSON文本格式,但京东获取到的JSON文本有干扰,不是一个完全的类似字典类型文本,因此我们需要去除掉花括号前后的无意义字符串:

if content != None:
                content = content.strip('fetchJSON_comment98vv385();')

然后我们使用json模块对其进行解析,并从中提取我们需要的信息:

jbs = json.loads(content)
comments = jbs["comments"]
for comment in comments:
    print(comment["id"],":",comment["content"])

从而我们就得到了京东商品评论。

4. 全部代码:

header = { 
   "user-agent":'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.138 Safari/537.36'}
url = "https://club.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98&productId=100021400874&score=0&sortType=5&page=2&pageSize=10&isShadowSku=0&rid=0&fold=1"
time.sleep(random.random())
content = requests.get(url = url,headers = headers).text
if content != None:
                content = content.strip('fetchJSON_comment98vv385();')、
        jbs = json.loads(content)
comments = jbs["comments"]
for comment in comments:
    print(comment["id"],":",comment["content"])
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/159486.html原文链接:https://javaforall.net

(0)
上一篇 2022年7月26日 上午10:46
下一篇 2022年7月26日 上午11:00


相关推荐

  • scheduleAtFixedRate()踩的坑

    scheduleAtFixedRate()踩的坑公司有个定时任务 跑了 10 天挂了 看日志没有任何的错误信息 查找一番发现问题所在 记录一下 一直以为 scheduleAtFi 和 scheduleWith 这两个方法的区别是 scheduleWith 是延迟任务 scheduleAtFi 是定时任务 ScheduledExe

    2026年3月19日
    3
  • sqlserver字符串转换为日期_sqlserver默认日期格式

    sqlserver字符串转换为日期_sqlserver默认日期格式MyBeNsqlserver字符串转成日期格式在SQLServer数据库中,SQLServer日期时间格式转换字符串可以改变SQLServer日期和时间的格式,是每个SQL数据库用户都应该掌握的。本文我们主要就介绍一下SQLServer日期时间转字符串的相关知识,接下来就让我们一起来了解一下这部分内容。字符串转日期时间:convert(datetime,列名)日期时间转字符串…

    2022年10月8日
    5
  • 实验四:定时器实验[通俗易懂]

    实验四:定时器实验[通俗易懂]一、实验目的1、掌握单片机定时/计数器的使用方法。2、掌握定时/计数器编程方法。二、实验设备及软件1、PC机2、KEIL513、PROTEAUS三、实验任务1、循环点亮流水等D1-D2-D3…D8, 延时采用定时器T0定时100ms2、循环点亮流水等D1-D2-D3…D8, 延时采用定时器T1定时1s四、仿真电路

    2022年7月26日
    5
  • GitHub 标星 2.9w+,我发现了一个宝藏项目,作为编程新手有福了!「建议收藏」

    GitHub 标星 2.9w+,我发现了一个宝藏项目,作为编程新手有福了!「建议收藏」大家好,我是Rocky0429,一个最近老在GitHub上闲逛的蒟蒻…特别惭愧的是,虽然我很早就知道GitHub,但是学会逛GitHub的时间特别晚。当时一方面是因为菜,看着这种全是英文的东西难受,不知道该怎么去玩,另一方面是一直在搞ACM,没有做一些工程类的项目,所以想当然的以为和GitHub也没什么关系(当然这种想法是错误的)。后来自己花了一个星期看完了Pyt…

    2022年6月17日
    32
  • PyCharm激活码永久有效PyCharm2017.1.8激活码教程-持续更新,一步到位

    PyCharm激活码永久有效PyCharm2017.1.8激活码教程-持续更新,一步到位PyCharm激活码永久有效2017.1.8激活码教程-Windows版永久激活-持续更新,Idea激活码2017.1.8成功激活

    2022年6月19日
    39
  • Weblogic入门

    Weblogic入门Weblogic

    2026年3月17日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号