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"])
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • xshell怎么配置_winedt使用教程

    xshell怎么配置_winedt使用教程一、XShell的作用二、下载XShell三、安装XShell四、使用XShell连接Linux服务器Xshell免费版官网下载地址:https://www.xshell.com/zh/free-for-home-school/如官网打不开,可以从网盘下载链接:https://pan.baidu.com/s/1NJGWZHkByakOkQpKfkc7Yg提取码:r0ds

  • java calendar和date_java calendar获取年月日

    java calendar和date_java calendar获取年月日java中的Calendar类为什么起个名字就叫做日历呢?因为这个类可以让我们像看日历一样得到这个时间的所有属性,你还在为不知道2014年5月7日是周几而苦恼吗?你还在为2005年8月14日是8月的第几周而发愁吗?快来试一试Calendar吧。Calendar的常用属性属性作用YEAR年份MONTH月份DATE同DAY_OF_MONTH,日期DAY_…

  • dategrip激活码【2021最新】

    (dategrip激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

  • windows连接Ubuntu16.10中winscp连接被拒绝「建议收藏」

    windows连接Ubuntu16.10中winscp连接被拒绝「建议收藏」这些天在玩Linux上的一些东西,物理机装了Linux,虚拟机也装了。但是很尴尬,完全从Windows上迁移到Linux上还是需要时间的,比如说今天,虚拟机上就碰到了问题。博主想在Windows上装一个winscp。winscp是一款文件传输工具,可以用来做不同系统之间的文件传输。 因为某些需要,博主的虚拟机网卡设置的是host-only模式,这种模式有一个缺点,也应该不算是缺点,在这种模式

  • matlab根据数据画三维图_matlab导入三组数据画三维图

    matlab根据数据画三维图_matlab导入三组数据画三维图首先先分析对象。将数据利用matlab画出图,最开始是导入数据,然后处理数据,最后将处理的数据画出来。所以我将它分为三个步骤。第一步:导入数据如果是mat数据。可以直接load 如果是txt数据。可以用txtread 如果是excel数据。可以用xlsread详细的,可以参考https://blog.csdn.net/blueskyjian/article/details/728…

    2022年10月11日
  • 根据IP定位用户所在城市信息

    根据IP定位用户所在城市信息

    2021年10月23日

发表回复

您的电子邮箱地址不会被公开。

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