手机版

以淘宝评论为例 讲解Python爬行ajax动态生成数据(经典)

时间:2021-09-29 来源:互联网 编辑:宝哥软件园 浏览:

学习python时,我们会遇到网站内容是ajax动态请求和异步刷新生成的json数据的情况,在使用python之前不可能抓取静态网页内容。因此,本文将讨论在python中爬行ajax动态生成的数据。

至于阅读静态网页内容的方式,感兴趣的可以查看本文内容。

这里我们以抓取淘宝评论为例来说明怎么做。

这里有四个主要步骤:

获取淘宝评论时,ajax请求一个链接(url)。

其次,获取ajax请求返回的json数据。

用python解析json数据。

第四,保存分析结果。

第一步:

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

然后跳到一个新的网页。在这里,因为我们需要抓取用户的评论,我们点击累积评价。

然后我们可以看到用户对产品的评价。此时,我们在网页上右键选择评论元素(或直接用F12打开),选择Network选项,如图:

在用户评论中,翻到底部,点击下一页或第二页。我们看到网络中动态添加了几个项目。我们选择从list_detail_rate.htm开始?ItemId=35648967399。

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

我们在浏览器的地址栏中输入刚得到的url链接,打开后会发现页面返回了我们需要的数据,但是因为是json数据,所以比较乱。

其次,获取ajax请求返回的json数据。

接下来,我们将在url中获取json数据。我用的python编辑器是pycharm。让我们看看python代码:

#-*-coding : utf-8-*-import sysreload(sys)sys . setdefaultencoding(' utf-8 ')import request surl=' https://rate . tmall.com/list _ detail _ rate . htm?itemid=35648967399spuid=226460655sellerid=1809124267=3currentpage=1append=0content=1tagid=posi=picture=ua=011uw5tcymnyqwiaiwqrhhbfef8qxthcklnmwc=| um5ocktyt3zcf 0 b 9 qn 9 ge C4=| u2xmhdj 7 G2 ahyg8 has 8 wkaymcfq 1uz 9 yjlxyjjhi=| vgh xd 1 llxgvyvyvovvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv内容=请求。contentprint内容# print。包括用户的评论。

这里的内容是我们需要的json数据,下一步就是分析这些json数据。

用python解析json数据。

# -*-编码3330 utf-8-*-导入sysreload(sys)sys。setdefaultencoding(' utf-8 ')import request port JSON import re URL=' 339 rate。天猫。com/list _ detail _ rate。htm?item id=356 489967399 spid=2264606655 sell id=1809124726=3当前页面=1追加=0内容=1 tagid=位置=图片=ua=011 uw 5 tcymnywiaiwqhqhbfef 8 qxthcklnmwc=| 5 lock tyt 3zcf 0 b9qn gc4=| u2xmhdj 7 G2 ahyg 8具有8个wkay mcq 1 uz9 yjlxyjhi=| vghxdcontentrex=re。编译(r ' \ w[(]{ 1 }).*)[)]{ 1 })内容=rex。findall(account)[0]con=JSON。loads(content,' gbk ')count=len(带有[' rate detail '][' rate list '))for I in xrange(count): print带有[' rate detail '][' rate list '][I][' append comment '][' content '](9506.163。com)

299号房:

贺盛瑞是贺盛瑞,国王我的意思是,我的意思是,我的意思是,我的意思是,我的意思是,我的意思是,我的意思是,我的意思是,我的意思是,我的意思是,我的意思是,我的意思是,我的意思是,我的意思是,我的意思是,我的意思是,299号房JSON!JSON!JSON!JSON唉哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟导入json

帐户=请求。获取(网址).内容#范伟干先生JSON!JSON!JSON!JSON唉哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟哟

雷克斯=re编译(r'\w [(]{1}).*)[)]{ 1 }(#)朱庇特马吉德马吉德马吉德马吉德马吉德马吉德马吉德马吉德马吉德马吉德马吉德马吉德马吉德马吉德马吉德马吉德(签名)算算算算算算算算算算算算算算算算算算算算算算算算算算算算算算算算算算算算算算算,切望着切望着切望着切望着JSON!JSON!JSON!JSON我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊!我的天啊(a " : " b," c " 3360 " d)}

con=json.loads(内容,“gbk”)僧曰JSON!JSON!JSON!JSON什么事负载(负载)魏冄是吗很高兴见到你魏冄JSON!JSON!JSON!JSON范思哲范思哲范思哲、“gbk”不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,不,僧儿赢了绿筠小姐gbk(英国)

count=len(使用['rateDetail']['rateList']) #范龙佩范龙佩(贺盛瑞(音译))

对于xrange(计数):中的I

打印时使用['费率明细']['费率列表'][I]['附加注释]

#贺盛瑞贺盛瑞1826年(吴亚玲吴亚玲吴亚玲,嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨嗨)

贺盛瑞贺盛瑞贺盛瑞JSON!JSON!JSON!JSON阿里王子阿里王子阿里王子阿里王子阿里王子阿里王子阿里王子阿里王子阿里王子阿里王子阿里王子阿里王子阿里王子阿里王子阿里王子阿里王子阿里王子阿里王子阿里王子阿里王子阿里王子阿里王子阿里王子阿里王子阿里王子阿里王子阿里王子阿里王子阿里

你好鲁仲尼鲁仲尼

贺盛瑞阿阿阿阿阿中阿中阿中阿中阿中英阿中阿中英阿中英阿中英阿中英阿中英阿中英阿中英阿中英阿中英阿中英俄西,哎哎哎哎哎哎哎哎啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊战斗支援车文件对。

苏秦苏秦苏秦,你好。

版权声明:以淘宝评论为例 讲解Python爬行ajax动态生成数据(经典)是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。

相关文章推荐