如何使用Python抓取移动端APP的评论(小白篇)

背景介绍

女朋友做毕业论文需要抓取移动端APP的评论,由于移动端APP无法在PC端登录,她之前使用的爬虫软件已经无从下手,本来她是想要一个个码字到电脑上面的。我听到她的想法很震惊,对她的毅力很是敬佩,但是想到还需要她帮我做饭,就只能帮她完成这个工作,身为懒人的我,当然不能一个个码字到电脑上面咯。

实现原理

  1. 手机通过PC热点连接互联网
  2. 使用Fiddler抓取通过PC热点网络传输发送与接收的数据包
  3. 将抓取到的http包进行数据清理,获取移动APP的评论

基础知识
Fiddler是强大的抓包工具,它的原理是以web代理服务器的形式进行工作的。代理就是在客户端和服务器之间设置一道关卡,客户端先将请求数据发送出去后,代理服务器会将数据包进行拦截,代理服务器再冒充客户端发送数据到服务器;同理,服务器将响应数据返回,代理服务器也会将数据拦截,再返回给客户端。通过代理可以实现将网络传输发送与接收的数据包进行截获、重发、编辑等操作,也可以用来检测流量。
知识来源:Fiddler工具使用介绍一

操作步骤

  1. 通过PC端Fiddler软件进行抓包
    1.1 配置PC端Fiddler软件与手机端WIFI代理
    参考blog:Python3.x+Fiddler抓取APP数据
    1.2 通过Fiddler的过滤器功能将url进行筛选
    这里以快手APP的评论为例,通过Fiddler可以发现评论url的关键字为“/rest/n/comment/list”
    通过配置相应的过滤器便可以筛选出需要的http包

    1.3 通过Fiddler将抓取的http包导出,准备进行数据清洗
    通过导出所有会话,将http的json格式的原始记录导出,导出格式选择“Raw Files”,
  2. 通过Python对导出的文件进行清理,清理出我们所需要的评论信息
    Tips:由于http包中的信息是以json格式记录的,可以通过json解析器清晰的了解http包中的数据结构。
    推荐使用JSON在线解析

不多说了,直接上代码

import urllib.request
import json
import re
kuaishouCommentClass = []
'''
读取通过Fiddler抓取的http包
'''
rootDirList = [r'C:\Users\dell\Desktop\Dump-0414-16-34-31\103.107.217.2\rest\n\comment\list',
]
for rootdir in rootDirList:list = os.listdir(rootdir) for i in range(0,len(list)):path = os.path.join(rootdir,list[i])if os.path.isfile(path):v = open(path,'r',encoding='UTF-8')originalCommentClass = json.loads(v.readline())kuaishouCommentClass.append(originalCommentClass)
'''
清洗指定目录下的http包
'''
f = open('E:\github\kuaishouComment\KuaishouComment.txt','w',encoding='utf-8')
pattern = re.compile(r'\[(.*)\]')
for commentClass in kuaishouCommentClass:dictSubComments = commentClass["subCommentsMap"]listRootComments = commentClass["rootComments"]   for subDict in dictSubComments.values():if len(subDict["subComments"]) == 0:passelse:subCommentList = subDict["subComments"]for subComment in subCommentList:comment = subComment["content"]print(comment)print('\n')comment = comment + '\n'# 删除评论中的表情comment_re = re.sub(pattern,'',comment)if comment_re != '\n':f.write(comment_re)for subList in listRootComments:comment = subList["content"]comment = comment + '\n'comment_re = re.sub(pattern,'',comment)if comment_re != '\n':f.write(comment_re)print('\n')f.close()

总结

研发始于设计,终于验证。由于前期缺乏设计,一度程序设计为通过Finddler抓取到http包的url,然后通过Python读取url返回的json进行数据爬取,浪费了时间,好在url复制粘贴的太费劲,然后想办法可以省事,于是最终确定了以上的方案,就此小白成功帮助女友抓取到评论8000+,得到了女友美味的周末大餐一顿 ~

如何使用Python抓取移动端APP的评论(小白篇)相关推荐

  1. pythonallowpos_利用Python抓取并分析京东商品评论数据

    2.1 内容简介 本章主要介绍如何利用Python抓取京东商城商品评论信息,并对这些评论信息进行分析和可视化.下面是要抓取的商品信息,一款女士文胸.这个商品共有红色,黑色和肤色等颜色, 70B到90D ...

  2. python新闻评论分析_使用 python 抓取并分析京东商品评论数据

    本篇文章是python爬虫系列的第三篇,介绍如何抓取京东商城商品评论信息,并对这些评论信息进行分析和可视化.下面是要抓取的商品信息,一款女士文胸.这个商品共有红色,黑色和肤色三种颜色, 70B到90D ...

  3. 用python抓取百万网易云热门评论[转载]

    前言 最近在研究文本挖掘相关的内容,所谓巧妇难为无米之炊,要想进行文本分析,首先得到有文本吧.获取文本的方式有很多,比如从网上下载现成的文本文档,或者通过第三方提供的API进行获取数据.但是有的时候我 ...

  4. python抓取抖音评论_一篇文章教会你用Python抓取抖音app热点数据

    今天给大家分享一篇简单的安卓app数据分析及抓取方法.以抖音为例,我们想要抓取抖音的热点榜数据. 要知道,这个数据是没有网页版的,只能从手机端下手. 首先我们要安装charles抓包APP数据,它是一 ...

  5. python 抖音文案提取_一篇文章教会你用Python抓取抖音app热点数据!

    今天给大家分享一篇简单的安卓app数据分析及抓取方法.以抖音为例,我们想要抓取抖音的热点榜数据. 要知道,这个数据是没有网页版的,只能从手机端下手. 首先我们要安装charles抓包APP数据,它是一 ...

  6. python 抖音文案提取_一篇文章教会你用Python抓取抖音app热点数据

    今天给大家分享一篇简单的安卓app数据分析及抓取方法.以抖音为例,我们想要抓取抖音的热点榜数据. 要知道,这个数据是没有网页版的,只能从手机端下手. 首先我们要安装charles抓包APP数据,它是一 ...

  7. 『言善信』Fiddler工具 — 17、抓取移动端App请求

    文章目录 1.Android移动端App抓包 2.IOS移动端App抓包 3.总结: 1.Android移动端App抓包 前提: 因为Fiddler抓包的原理就是通过代理,所以确保被测终端要和安装Fi ...

  8. python爬取抖音用户数据_一篇文章教会你用Python抓取抖音app热点数据

    今天给大家分享一篇简单的安卓app数据分析及抓取方法.以抖音为例,我们想要抓取抖音的热点榜数据. 要知道,这个数据是没有网页版的,只能从手机端下手. 首先我们要安装charles抓包APP数据,它是一 ...

  9. 京东app优惠券python抓取_京东app商品信息爬取

    抓取目标: 我们的抓取目标是京东商城的App电子商品信息,并将信息保存到MongoDB数据库中. 抓取商品信息的id号.标题.单价.评价条数等信息 准备工作和抓取分析 准备工作: 安装app抓包工具C ...

  10. Fiddler抓取移动端APP流量数据

    配置Fiddler 启动Fiddler,在工具栏中点击Tools,选择Option选项 Option窗口打开后,先配置HTTPS,如图所示配置即可,过程中会提示安装证书,按提示选"yes&q ...

最新文章

  1. 分布式概念-去中心化副本控制实现
  2. Flask入门之Virtualvenv的安装及使用(windows)
  3. 重新认识块级元素--DIV
  4. 根据可信计算机系统评估准则 用户,根据可信计算机系统评估准则(TESEC),用户能定义访问控制要求的自.._简答题试题答案...
  5. 论文翻译:Real-Time High-Resolution Background Matting
  6. python下载-python
  7. 游戏开发之测试篇3(C++)
  8. intellij idea 和 maven的自己的理解和安装配置
  9. TypeError: __init__() got an unexpected keyword argument 'serialized_options'(安装protobuf 3.6.0)
  10. Vmware报错 This product may not be installed on a computer that has Microsoft HyperV installed. 解决
  11. Ubuntu安装和常用软件
  12. oracle错误 904,IMP-00058: 遇到 ORACLE 错误 904
  13. 使用DevOps强化敏捷(上)
  14. 淘宝天猫各大电商平台接口测试
  15. [方法篇](禁止YisouSpider|EasouSpider|EtaoSpider)搜索引擎蜘蛛给网站带来的危害,有效指引爬虫对应的措施...
  16. 产品设计——互联网产品设计
  17. hibernate访问mysql没有响应_Struts2+hibernate + mysql C3P0连接池 导致写数据库无反应(死机)...
  18. 【解决】谷歌浏览器闪退/重新安装错误提示0xa0430721
  19. WPF 捕获键盘输入事件
  20. SSL P2151 西行寺幽幽子___高精度

热门文章

  1. 读 PHP - Pimple 源码笔记(下)
  2. Transformer12
  3. 微信企业号开发(1)--基础入门
  4. Druid 技术白皮书:大数据实时统计分析数据存储
  5. gazebo可以另存为world
  6. r矢量球坐标系旋度_球面,柱面坐标系下的散度与旋度
  7. linux执行 ifconfig 命令 eth0没有IP地址(intet addr、Bcast、Mask)
  8. 计算机配置更新很长时间没反应,电脑安装更新时间过长怎么办
  9. 《Beyond Part Models: Person Retrieval with Refined Part Pooling 》PCB论文解读
  10. 四级网络工程师试题九