本次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 爬取京东评论相关推荐

  1. python爬取京东商品数据要先登录_3分钟教你不用python也能爬数据

    想成为一名Data Scientist,需要掌握收集数据.利用Excel进行简单的描述性信息分析.利用机器学习神经网络等技术进行预测性及挖掘性数据分析.可视化呈现信息.最终得到商业Insights的能 ...

  2. python中字典的value可以为任意对象_手把手教你学Python之字典

    字典是一种无序可变的容器,字典中的元素都是"键(key):值(value)"对, "键"和"值"之间用冒号隔开,所有"键值对&qu ...

  3. python爬取京东商品数据要先登录_京东商品评论情感分析|文本数据预处理

    本文爬取了十款热销手机的文本评论数据后,首先对文本评论数据做文本预处理,文本评论数据中存在大量的无价值信息,引入无用的文本数据,对其作情感分析,显然没有价值,得出的文本挖掘结果也不尽人意.所以对于文本 ...

  4. qq 音乐 python 登录_手把手教你使用Python抓取QQ音乐数据(第一弹)

    [一.项目目标] 获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 由浅入深,层层递进,非常适合刚入门的同学练手. [二.需要的库] 主要涉及的库有:requests.json ...

  5. python爬虫爬取房源_手把手教你用Python网络爬虫爬取新房数据

    项目背景 大家好,我是J哥. 新房数据,对于房地产置业者来说是买房的重要参考依据,对于房地产开发商来说,也是分析竞争对手项目的绝佳途径,对于房地产代理来说,是踩盘前的重要准备. 今天J哥以「惠民之家」 ...

  6. python爬取qq音乐歌曲链接为什么播放不出来_手把手教你使用Python抓取QQ音乐数据(第一弹)...

    原标题:手把手教你使用Python抓取QQ音乐数据(第一弹) [一.项目目标] 获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 由浅入深,层层递进,非常适合刚入门的同学练手. ...

  7. 手把手教你入侵网站修改数据_手把手教你使用Python抓取QQ音乐数据(第四弹)...

    [一.项目目标] 通过手把手教你使用Python抓取QQ音乐数据(第一弹)我们实现了获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 通过手把手教你使用Python抓取QQ音乐 ...

  8. 如何用python抓取qq音乐_手把手教你使用Python抓取QQ音乐数据(第三弹)-阿里云开发者社区...

    [一.项目目标] 通过手把手教你使用Python抓取QQ音乐数据(第一弹)我们实现了获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 通过手把手教你使用Python抓取QQ音乐 ...

  9. python音乐的数据抓取与分析_手把手教你使用Python抓取QQ音乐数据!

    [一.项目目标] 通过手把手教你使用Python抓取QQ音乐数据(第一弹)我们实现了获取 QQ 音乐指定歌手单曲排行指定页数的歌曲的歌名.专辑名.播放链接. 通过手把手教你使用Python抓取QQ音乐 ...

最新文章

  1. 在同一网段内运行同一命令_怎么又是你?男子一天内2次酒驾被查,没想到碰上了同一个交警...
  2. flash和linux文件系统,面向大容量Flash的高效Linux文件系统改进和实现
  3. nylon尼龙的来历
  4. 3、C#面向对象:封装、继承、多态、String、集合、文件(下)
  5. java魔剑天使,血色天使魔剑官方版
  6. 数组的几种定义方式及初始化
  7. 冲刺七天----03
  8. 取石子游戏,威佐夫博弈的推理
  9. opencv python 灰度化,opencv-python 图像灰度化
  10. Delphi FastReport4.5安装说明
  11. 《我是个怪圈》读书笔记
  12. Visio图标下载链接
  13. 博客园电子期刊2012年8月刊发布啦
  14. 计算机操作员初级试题及答案,计算机操作员初级考试试题
  15. 采取递归算法的方式升级打怪
  16. 费曼物理学讲义(连载)
  17. 手机百度浏览器底部fixed悬浮框屏蔽问题,终极解决方案
  18. Windows ICON 详解
  19. 【原创】十六进制数值与字符串之间的转换(原封不动的转换)
  20. Ubuntu PPA 软件源用法介绍

热门文章

  1. java socket发送16进制_JavaSocket短连接实现分别接收字符串和16进制数据
  2. 3月28日,www.cndigg.com(中国掘客)第一期上线
  3. 信息熵的数值计算公式
  4. 萤石云创建两次EZUIKit出现监控画面只显示一个
  5. 商业故事(美团、拼多多)
  6. ASA5585防火墙IDC机房上架记
  7. sharepoint 2016 学习系列篇(21)-文档库应用篇-(3)在文档库中上传文档和下载文档
  8. 全世界人民为什么都笑了
  9. python tkinter获取屏幕大小_Python GUI编程|使用Tkinter制作快递查询软件
  10. C语言over,java出征