Python抓取当当网评论的Ajax接口

鳄鱼君Ba

发表文章数:514

Vieu四代商业主题

高扩展、安全、稳定、响应式布局多功能模板。

¥69 现在购买
首页 » Python教程 » Python抓取当当网评论的Ajax接口

目标网址:http://product.dangdang.com,我们随便选择一个图书,我这里以唐诗三百首http://product.dangdang.com/1082627885.html为例,推荐使用火狐浏览器,我们鼠标右键-查看元素-点击网络,必备知识,我们按照下图进行分析,寻找数据接口。

Python抓取当当网评论的Ajax接口

上面图片标记的地方就是我们要寻找基本套路,一般都是先清空一下所有的请求数据(左边的小垃圾桶),然后刷新网页,数据很多,我们可以直接按照类型排序,一般都是在json文件中,这样就排除了很多没有用的信息,我们重点看json数据,主要是响应部分,json文件不多,我们一个一个找找看看就可以。

Python抓取当当网评论的Ajax接口

那么我们所需要的评论内容其实就是在这个请求里面了,我们更换到消息头,我们找到请求头的信息

http://product.dangdang.com/index.php?r=comment%2Flist&productId=1082627885&categoryPath=01.41.45.11.00.00&mainProductId=1082627885&mediumId=0&pageIndex=1&sortType=1&filterType=1&isSystem=1&tagId=0&tagFilterCount=0&template=publish

我们在浏览器打开这个网址,返回的就是json文件,里面包含了我们想要的评论。特别注意pageIndex参数,这个就是构造翻页的,这个都是自己摸索尝试的,别问你怎么上来就说pageIndex,我们去掉后面的参数,修改pageIndex=2,就实现了翻页的操作,哈哈,分析就此结束,然后就是写代码了。

import requests,json
from lxml import etree

for i in range(1,7):
    url='http://product.dangdang.com/index.php?r=comment%2Flist&productId=1082627885&categoryPath=01.41.45.11.00.00&mainProductId=1082627885&mediumId=0&pageIndex={0}'.format(i)
    headers={
        'User-Agent':'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.163 Safari/535.1',
    }
    response=requests.get(url,headers=headers)
    # print(type(response.text))
    # print(response.text)
    result=json.loads(response.content)  #这里一般都需要把json转换为字典dict,方便我们取值
    # print(type(result))
    # print(result) #会发现都是嵌套的字典dict,便于我们提取想要的数据
    comment_html=result['data']['list']['html'] #找到html,它里面包含我们想要的所有信息
    #print(comment_html)
    #xpath解析数据
    tree=etree.HTML(comment_html)
    comments=tree.xpath('//div[@class="item_wrap"]')
    #print(comments)
    for i in comments:
        comment_data=i.xpath('./div[@class="comment_items clearfix"]/div[1]/div[@class="describe_detail"]/span/text()')[0]
        comment_time=i.xpath('./div[@class="comment_items clearfix"]/div[1]/div[@class="starline clearfix"]/span[1]/text()')[0]
        print(comment_time,comment_data)

xpath分析按照评论的源代码分析,刚开始尽量写的细致一点,先抓大,再抓小的。

未经允许不得转载:作者:鳄鱼君Ba, 转载或复制请以 超链接形式 并注明出处 鳄鱼君Ba
原文地址:《Python抓取当当网评论的Ajax接口》 发布于2020-02-24

分享到:
赞(0) 赏杯咖啡

评论 抢沙发

2 + 2 =


文章对你有帮助可赏作者一杯咖啡

支付宝扫一扫打赏

微信扫一扫打赏

Vieu4.6主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录
切换登录

注册