用python抓取淘宝评论

来自:http://blog.csdn.net/winterto1990/article/details/47983253

在学习python的时候,一定会遇到网站内容是通过ajax动态请求、异步刷新生成的json数据的情况,并且通过python使用之前爬取静态网页内容的方式是不可以实现的,所以这篇文章将要讲述如果在python中爬取ajax动态生成的数据。

这里我们以爬取淘宝评论为例子讲解一下如何去做到的。

这里主要分为了四步: 一 获取淘宝评论时,ajax请求链接(url)获取该ajax请求返回的json数据使用python解析json数据保存解析的结果

步骤一: 获取淘宝评论时,ajax请求链接(url) 这里我使用的是Chrome浏览器来完成的。打开淘宝链接,在搜索框中搜索一个商品,比如“鞋子”,这里我们选择第一项商品。

然后跳转到了一个新的网页中。在这里由于我们需要爬取用户的评论,所以我们点击累计评价。

然后我们就可以看到用户对该商品的评价了,这时我们在网页中右击选择审查元素(或者直接使用F12打开)并且选中Network选项,如图所示:

我们在用户评论中,翻到底部 点击下一页或者第二页,我们在Network中看到动态添加了几项,我们选择开头为list_detail_rate.htm?itemId=35648967399的一项。

然后点击该选项,我们可以在右边选项框中看到有关该链接的信息,我们要复制Request URL中的链接内容。

我们在浏览器的地址栏中输入刚才我们获得url链接,打开后我们会发现页面返回的是我们所需要的数据,不过显得很乱,因为这是json数据。

获取该ajax请求返回的json数据

下一步,我们就要获取url中的json数据了。 我所使用的python编辑器是pycharm,下面看一下python代码:

# -*- coding: utf-8 -*-

这里的content就是我们所需要的json数据,下一步就需要我们解析这些个json数据了。

使用python解析json数据

# -*- coding: utf-8 -*-

解析: 这里需要导入所要的包,re为正则表达式需要的包,解析json数据需要import json cont=requests.get(url).content #获取网页中json数据

rex=re.compile(r’\w+[(]{1}(.*)[)]{1}’) #正则表达式去除cont数据中多余的部分,是数据成为真正的json格式的数据{“a”:”b”,”c”:”d”}

con=json.loads(content,”gbk”) 使用json的loads函数 将content内容转化为json库函数可以处理的数据格式,”gbk”为数据的编码方式,由于win系统默认为gbk

count=len(con[‘rateDetail’][‘rateList’]) #获取用户评论的个数(这里只是当前页的)

for i in xrange(count): print con[‘rateDetail’][‘rateList’][i][‘appendComment’] #循环遍历用户的评论 并输出(也可以根据需求保存数据,可以查看第四部分)

这里的难点是在杂乱的json数据中查找用户评论的路径

保存解析的结果

这里用户可以将用户的评论信息保存到本地,如保存为csv格式。 保存为csv数据->http://blog.csdn.net/winterto1990/article/details/47667941 保存为mysql数据->http://blog.csdn.net/winterto1990/article/details/47704509

原文发布于微信公众号 - 大数据挖掘DT数据分析(datadw)

原文发表时间:2016-08-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏小尘哥的专栏

前后端分离Nuxt.js解决SEO问题

背景:由于后端程序猿通常对CSS 、JS掌握不是特别好,通常的开发模式,UI把静态html做好交给程序猿,程序猿开发,把静态html变成动态的时候经常会有各种样...

934
来自专栏前端知识分享

第150天:网页中插入百度地图方法(需要密钥)

像这样的地图,我们可以通过手动来进行放大、缩小、移动等来查找具体的地址,特别方便,在页面上引用也显得页面很有特点,那么,应该怎么样来制作这种地图呢?

654
来自专栏dalaoyang

利用nginx,腾讯云免费证书制作https

之前一直在研究,https怎么弄。最近看到了腾讯云提供的免费得ssl证书,寻思把网站弄成https。 首先先去腾讯云购买一个免费得证书。 ? 点击后填写内容, ...

42513
来自专栏刺客博客

ShadowsocksR打开开多端口方法

1895
来自专栏桥路_大数据

Gradle打包问题Deprecated Gradle features were used in this build, making it incompatible with Gradle 5.0

4434
来自专栏Youngxj

emlog后台登录地址加密

2198
来自专栏微信小程序开发

微信小程序开发常见问题(五)

知晓程序员,专注微信小程序开发的程序员! 一、微信小程序审核未通过,怎么办? 小程序审核不通过的原因很多,微信会给出相应审核不通过 的原因。今天连胜老师给大家...

3097
来自专栏deepcc

微信公众号-个人开发者中心接口权限

4549
来自专栏ionic3+

【开发指南】(六)Ionic3从目录结构理解开发

对比目前其它流行的js框架,个人觉得其分工明确、清晰好理解,我觉得就算一开始头脑一遍空白的新手,对他讲解过一次后都能有个大致印象。

741
来自专栏Thinks

你的第一个渐进式网站应用(2)

点击下面的链接,下载这个代码实验室的完整代码:

481

扫描关注云+社区