python爬取京东商品数据要先登录_手把手教你用python 爬取京东评论
本次python实战,主要目标是利用 Python爬取京东商品评论数,如上图所示:爬取“Python之父”推荐的小蓝书,这些信息主要包括用户名、书名、评论等信息。
爬取的网址url是 https://item.jd.com/12531181.html ,爬取后的结果会保存在csv文件里面,便于数据分析。
01
如何准备爬虫环境?
其实不难
环境:MAC + Python3.6 ; IDE:Pycharm. 具体使用的模块如下。
import requests
但是如果你的系统上安装了anaconda,模块requests已经安装完成,但是 pycharm软件不能识别。
此时,需要使用preferences直接进行安装,入下图所示,点击+,直接安装即可。
02
爬虫分析真的很重要
准备工作
我们的目标是爬取京东的《零基础轻松学PYTHON》评论数,打开网页发现评论的页数很多。
也就是说我们需要解析多个页面。因此,我们想到使用一个for循环来实现。
那么该如何找到评论的网址呢?首先,打开浏览器,比如chrome,然后右键选择检查,调出来网页源代码,如下图:
然后,点击Network选项卡,并且把左边的网页翻滚到评论数,最后搜索COMMEN。如下图:你会发现红框里面的URL。该网址就是我们爬取的网址。
具体的网址是 https://sclub.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98vv36&productId=12531181&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1。通过观察,我们发现page=0,pagesize=10等信息。
并且当你点击下一页时,您会发现page=2,而网址中的其他信息没有变化,如图所示:
因此,我们构造循环即可实现对多个网页的爬取,比如100个网页,代码如下:
if __name__ == '__main__':# 循环100次 for i in range(101): main(start=i)
03
真正开始爬取评论数
两步走
根据以前爬虫文章(爬虫实战)的解析 ,我们分2步爬取本次任务。第一步是解析网页;第二步是爬取评论数并且保存文件。
为了方便代码可复用性和简洁,我们把两步写入两个函数里,分别是begain_scraping()和python_coments(),代码如下:
def main(start):""" 开始爬取 :return: """ # 第一步解析网页 comments_jd = begain_scraping(start)# 第二步 爬取评论并保存文件 python_comments(comments_jd)
04
开始解析网页
第一步
解析网页,也就是编写begain_scraping(),代码如下:
首先,根据爬取的网址(https://sclub.jd.com/comment/productPageComments.action?callback=fetchJSON_comment98vv36&productId=12531181&score=0&sortType=5&page=0&pageSize=10&isShadowSku=0&fold=1,我们得到下面信息:
# 构造商品地址url_jd = 'https://sclub.jd.com/comment/productPageComments.action?callback'# 网页信息vari_p = {# 商品ID 'productId': 12531181, # 换成你想爬取的ID就可以了 'score': 0, 'sortType': 5, # 爬取页面 'page': page, 'pageSize': 10,}
为了防止反爬虫,我们构造一个伪装浏览器,然后开始爬取,代码如下:
# 防止反爬虫,不需要更换headers = {'cookie': 'shshshfpaJsAhpiXZzNtbFCHZXchb60B240F81702FF', 'referer': 'https://item.jd.com/11993134.html', 'user-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.102 Safari/537.36'}comment_jd = requests.get(url=url_jd, params=vari_p, headers=headers)
05
开始爬取评论数并保存
第二步
开始爬取评论数并保存,也就是实现函数python_comment。本函数主要是对爬取的网页解析,然后保存在CSV文件。这也是模块化编程,逻辑清洗 ,代码简洁高效。具体代码如下:
def python_comments(comment_resp):""" 爬取数据并且写入评论 :param comment_resp: :return: """ comment_js = comment_resp.text comment_dict = json.loads(comment_js) comments_jd = comment_dict['comments']for comment in comments_jd: user = comment['nickname'] color = comment['productColor'] comment_python = comment['content']# 写入文件 with open('comments_jd.csv', 'a', newline='')as csv_file: rows = (user, color, comment_python) writer = csv.writer(csv_file) writer.writerow(rows)
06
爬取结果展示
效果
首先,在pycharm软件控制台 ,您可以看到爬取页面信息,如下:
另外,您会在项目下面, 多了一个CSV文件,就是我们保存的文件。打开看一下效果吧:
通过大家的评论,我们可以看出《轻松学Python》特别适合零基础的小伙伴学
python爬取京东商品数据要先登录_手把手教你用python 爬取京东评论相关推荐
- python爬取京东商品数据要先登录_3分钟教你不用python也能爬数据
想成为一名Data Scientist,需要掌握收集数据.利用Excel进行简单的描述性信息分析.利用机器学习神经网络等技术进行预测性及挖掘性数据分析.可视化呈现信息.最终得到商业Insights的能 ...
- python中字典的value可以为任意对象_手把手教你学Python之字典
字典是一种无序可变的容器,字典中的元素都是"键(key):值(value)"对, "键"和"值"之间用冒号隔开,所有"键值对&qu ...
- python爬取京东商品数据要先登录_京东商品评论情感分析|文本数据预处理
本文爬取了十款热销手机的文本评论数据后,首先对文本评论数据做文本预处理,文本评论数据中存在大量的无价值信息,引入无用的文本数据,对其作情感分析,显然没有价值,得出的文本挖掘结果也不尽人意.所以对于文本 ...
- qq 音乐 python 登录_手把手教你使用Python抓取QQ音乐数据(第一弹)
[一.项目目标] 获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 由浅入深,层层递进,非常适合刚入门的同学练手. [二.需要的库] 主要涉及的库有:requests.json ...
- python爬虫爬取房源_手把手教你用Python网络爬虫爬取新房数据
项目背景 大家好,我是J哥. 新房数据,对于房地产置业者来说是买房的重要参考依据,对于房地产开发商来说,也是分析竞争对手项目的绝佳途径,对于房地产代理来说,是踩盘前的重要准备. 今天J哥以「惠民之家」 ...
- python爬取qq音乐歌曲链接为什么播放不出来_手把手教你使用Python抓取QQ音乐数据(第一弹)...
原标题:手把手教你使用Python抓取QQ音乐数据(第一弹) [一.项目目标] 获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 由浅入深,层层递进,非常适合刚入门的同学练手. ...
- 手把手教你入侵网站修改数据_手把手教你使用Python抓取QQ音乐数据(第四弹)...
[一.项目目标] 通过手把手教你使用Python抓取QQ音乐数据(第一弹)我们实现了获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 通过手把手教你使用Python抓取QQ音乐 ...
- 如何用python抓取qq音乐_手把手教你使用Python抓取QQ音乐数据(第三弹)-阿里云开发者社区...
[一.项目目标] 通过手把手教你使用Python抓取QQ音乐数据(第一弹)我们实现了获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 通过手把手教你使用Python抓取QQ音乐 ...
- python音乐的数据抓取与分析_手把手教你使用Python抓取QQ音乐数据!
[一.项目目标] 通过手把手教你使用Python抓取QQ音乐数据(第一弹)我们实现了获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 通过手把手教你使用Python抓取QQ音乐 ...
最新文章
- 在同一网段内运行同一命令_怎么又是你?男子一天内2次酒驾被查,没想到碰上了同一个交警...
- flash和linux文件系统,面向大容量Flash的高效Linux文件系统改进和实现
- nylon尼龙的来历
- 3、C#面向对象:封装、继承、多态、String、集合、文件(下)
- java魔剑天使,血色天使魔剑官方版
- 数组的几种定义方式及初始化
- 冲刺七天----03
- 取石子游戏,威佐夫博弈的推理
- opencv python 灰度化,opencv-python 图像灰度化
- Delphi FastReport4.5安装说明
- 《我是个怪圈》读书笔记
- Visio图标下载链接
- 博客园电子期刊2012年8月刊发布啦
- 计算机操作员初级试题及答案,计算机操作员初级考试试题
- 采取递归算法的方式升级打怪
- 费曼物理学讲义(连载)
- 手机百度浏览器底部fixed悬浮框屏蔽问题,终极解决方案
- Windows ICON 详解
- 【原创】十六进制数值与字符串之间的转换(原封不动的转换)
- Ubuntu PPA 软件源用法介绍
热门文章
- java socket发送16进制_JavaSocket短连接实现分别接收字符串和16进制数据
- 3月28日,www.cndigg.com(中国掘客)第一期上线
- 信息熵的数值计算公式
- 萤石云创建两次EZUIKit出现监控画面只显示一个
- 商业故事(美团、拼多多)
- ASA5585防火墙IDC机房上架记
- sharepoint 2016 学习系列篇(21)-文档库应用篇-(3)在文档库中上传文档和下载文档
- 全世界人民为什么都笑了
- python tkinter获取屏幕大小_Python GUI编程|使用Tkinter制作快递查询软件
- C语言over,java出征