精华内容
下载资源
问答
  • app爬虫工具

    千次阅读 2019-07-10 16:31:00
    Charles 和 mitmproxy相当于fidder Appium相当于Selenium

    Charles 和 mitmproxy相当于fidder
    Appium相当于Selenium

    展开全文
  • 无论是编写APP爬虫或者调试一些APP接口我们经常需要进行抓包,比如我经常抓一个请求之后用来在服务器复现bug。 目前已经有很多不错抓包工具比如 Fiddle, Charles,但是既然这是个命令行工具的专栏,我们还是来介绍...

    今天给大家介绍一个我经常用来APP抓包的一个基于Python 的命令行工具-mitmproxy。 无论是编写APP爬虫或者调试一些APP接口我们经常需要进行抓包,比如我经常抓一个请求之后用来在服务器复现bug。

    目前已经有很多不错抓包工具比如 Fiddle, Charles,但是既然这是个命令行工具的专栏,我们还是来介绍这个命令行工具。 相比GUI工具,它操作类似vim,开源免费,支持Python扩展,支持导出成python requests代码, locust 压测脚本等。同时 mitmweb 支持web访问。 当然相比GUI工具也有一些缺点,比如接口分类不是很方便,不过作为基本的抓包也够用了。 视频里我会演示如何安装、使用 mitmproxy,如何配置 APP 端支持 HTTPS 请求。

    安装

    安装和使用 mitmproxy 非常方便:

    # 安装
    pip install mitmproxy
    # 启动
    mitmproxy -p8888
    

    快捷键:

    ? 帮助文档
    q 返回/退出程序
    b 保存response body
    f 输入过滤条件
    k 上
    j 下
    h 左
    l 右
    space 翻页
    enter 进入接口详情
    z 清屏
    e 编辑
    r 重新请求
    
    展开全文
  • mitmproxy抓包工具和夜神模拟器爬取得到APP的数据 一、相关软件的安装 工欲善其事,必先利其器,要实现我们的需求,当然是先准备我们所需的工具,本次主要主要用的工具有: python(这个在此处不提,自行百度进行...

    mitmproxy抓包工具和夜神模拟器爬取APP的数据

    一、相关软件的安装

    工欲善其事,必先利其器,要实现我们的需求,当然是先准备我们所需的工具,本次主要主要用的工具有:
    查看更多python相关内容,可以查看我的个人网站:大圣的专属空间

    • python(这个在此处不提,自行百度进行安装,注意环境变量的配置)
    • pycharm(代码编辑器,博主采用的pycharm专业版)
    • Visual Studio Code(这个也是个编辑器,安装也很简单,自行百度即可,根据自己喜好选择即可)
    • Android SDK(安卓开发环境)
    • java SDK(安卓开发依赖环境,其他抓包软件也需要安装)
    • mitmproxy(抓包工具,安装方式下面说明)
    • mongodb(非关系型数据库)
    • RoboMongo/Robo 3T(可视化工具RoboMongo/Robo 3T,下载链接为可视化工具下载
    • 夜神模拟器(手机模拟器,博主开始采用的真机,后来因为老连接出问题及每次用数据线连接太麻烦,所以选择采用模拟器的形式,本次采用夜神模拟器)

    安装包如下图所示:
    在这里插入图片描述

    注意(安装过程遇到问题请查看):
    • Android SDK安装
      对于Android SDK的安装,博主主要参考崔大大的博客安卓SDK环境配置

    • Java SDK安装
      此软件安装按照百度搜索出来的即可:JDK安装

    • mitmproxy安装过程中遇到的问题

    1. pip install mitmproxy安装过程中的问题

    针对mitmproxy的安装,按照崔大大的博客安装教程mitmproxy的安装即可,不过博主的安装过程中运行pip install mitmproxy出现了以下问题:
    在这里插入图片描述

     error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools": https://visualstudio.microsoft.com/downloads/
    

    是因为安装这个包的 window 系统需要首先安装 Microsoft Visual C++ V14.0以上 才行。
    目前直接点击蓝色界面已经找不到网页链接(网传该工具国内被墙了,无法直接下载)。

    博主的解决方案是:在https://visualstudio.microsoft.com/zh-hans/downloads/直接下载即可,下载打开之后按照如下图所示的方式安装相关插件:
    在这里插入图片描述
    选择“使用 C++ 的桌面开发”,选择默认的安装内容即可(尽量自己定义安装位置),安装过程较慢,耐心等待,安装完成之后在命令行进行安装 mitmproxy即可。

    1. 证书配置过程中的问题

    大致过程安装崔大大博客里介绍的安装即可,有几条提醒的:

    • 证书位置(其中文中标记的位.p12文件)
      在这里插入图片描述
    • 手机安装证书的方式
      首先将证书直接拖拽至夜神模拟器中,然后安装以下步骤安装:
      在这里插入图片描述
      在这里插入图片描述
      最后从SD卡中选择拖拽过来的证书文件安装即可(怎么选择应该不用教了吧!)
    • MongoDB安装
      对于Android SDK的安装,博主主要参考崔大大的博客MongoDB安装,其中安装过程中:不要将软件安装在C盘,点击安装 一直执行Next下一步,当进入这个界面的时候,下面的√一定要去掉,不然会安装的特别的慢,如果不去掉,可能要等几个小时以上,博主亲身已经试验过了在这里插入图片描述
    • 夜神模拟器的安装
      夜神模拟器官网下载安装包,然后点击安装即可,配置连接请查看博客夜神模拟器连接电脑配置

    二、采用mitmproxy进行抓包处理

    • 首先确保开发环境均已搭建成功同时模拟器已连接到电脑上

    据说配置好开发环境就已经干掉百分之七十的人了,相信自己一定可以的,而且你遇到的问题百分之百能在网上搜到解决方法,只是好多人遇到烦躁的问题就退缩了,我也是慢慢从坑里爬出来的,哈哈!!!继续…
    在这里插入图片描述

    • 然后配置模拟器的端口设置----WLAN,如下图所示:
      在这里插入图片描述
      在这里插入图片描述

      • 运行mitmproxy

      在命令中运行mitmproxy报错:
      在这里插入图片描述
      其主要是因为windows不支持mitmproxy,因此我们此采用mitmdump(只能在命令里面看到抓包信息)和mitmweb(可以在网页里看到抓信息)进行抓包处理,本文采用mitmweb进行抓包,在命令行输入:mitmweb,可以看到已经运行了:
      在这里插入图片描述
      同时打开了个网站:
      在这里插入图片描述
      然后我们打开模拟器里的APP即可看到网站里的抓包信息
      在这里插入图片描述
      这样我们就获取了APP里的请求数据,接下来我们来实现数据的抓取并存储到数据库中。

    三、采用mitmproxy进行抓包爬取得到APP的书籍信息数据

    首先在模拟器上安装得到APP,安装方法很简单,下载apk安装包,将其拖拽至模拟器上,则模拟器进行自动解析安装。
    接下来需要我们写Python脚本来实现数据的抓取及存储,先依据第二步分析,打开得到APP,点击进入到电子书书籍列表模块,如下图所示:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    然后查看web页面中的抓包信息,查看mitmweb前端页面显示的抓包数据信息,我们会发现,链接https://entree.igetget.com/ebook2/v1/ebook/list显示可到查看到书籍信息的json数据,记住此URL后续会用到:
    在这里插入图片描述
    获取到了请求的url链接,接下来我们在pycharm里编写爬虫脚本,以获得数据,根据崔大大的教程编写脚本会如下(博主保存为spider.py):

    import json
    from mitmproxy import ctx
    import pymongo
    my_cilent = pymongo.MongoClient("mongodb://localhost:27017/")
    my_db = my_cilent["getBook"]
    my_collection = my_db["books"]
    def response(flow):
        global my_collection
        url = 'https://entree.igetget.com/ebook2/v1/ebook/list'
        if flow.request.url.startswith(url):
            text = flow.response.text
            data = json.loads(text)
            books = data.get('c').get('list')
            for book in books:
                data = {
                    'title': book.get('operating_title'),
                    'bookName': book.get('book_name'),
                    'bookIntroduce': book.get('book_intro'),
                    'currentPrice': book.get('current_price'),
                    'publishTime': book.get('publish_time'),
                }
                ctx.log.info(str(data))
                my_collection.insert_one(data)
    

    但是通过mitmweb -s spider.py运行后代码会报错:

    在这里插入图片描述
    具体原因我也不清楚,但是针对原始代码进行了相应的改动,将连接数据库的三行代码放入到了def函数内,具体代码如下所示:

    import json
    from mitmproxy import ctx
    import pymongo
    def response(flow):
        my_cilent = pymongo.MongoClient("mongodb://localhost:27017/")
        my_db = my_cilent["getBook"]
        my_collection = my_db["books"]
        # global my_collection
        url = 'https://entree.igetget.com/ebook2/v1/ebook/list'
        if flow.request.url.startswith(url):
            text = flow.response.text
            data = json.loads(text)
            books = data.get('c').get('list')
            for book in books:
                data = {
                    'title': book.get('operating_title'),
                    'bookName': book.get('book_name'),
                    'bookIntroduce': book.get('book_intro'),
                    'currentPrice': book.get('current_price'),
                    'publishTime': book.get('publish_time'),
                }
                ctx.log.info(str(data))
                my_collection.insert_one(data)
    

    然后运行mitmweb -s spider.py不显示错误,然后重复上面的步骤:打开app、进入电子书栏目,进入书单列表,手动下拉(目前需要人手动下拉进行数据的刷新,后续可与appium结合起来,实现自动化的下拉),我们可以看到命令栏已经显示我们所需爬取的数据:
    在这里插入图片描述
    此时我们用可视化工具打开数据库,即可看到数据已保存至数据库中:
    在这里插入图片描述
    至此,我们采用mitmproxy抓包工具和夜神模拟器就实现了APP数据的简单抓取,目前是需要手动进行下拉刷新,后续采用自动化工具Appium进行数据的自动化抓取。

    四、总结

    学习爬虫主要参考的崔大大的《Python3网络爬虫开发实战》,本此只是实现了APP数据的简单抓取,算是对APP数据爬虫的入门,针对此文后续还有更多的内容学习:

    • mongoDB数据库的操作学习
    • mitmproxy的详细使用教程
    • Appium 自动化爬虫的学习
    • 获取的数据的价值:爬取成功的数据如何发挥数据的价值
    • 爬虫框架:学习爬虫框架
    • 分布式:实现分布式爬取大量数据

    等等!

    完结!!!!

    展开全文
  • 03 APP爬虫

    2020-09-28 20:53:44
    APP爬虫—Fiddler的安装与使用 Fiddler的简介 Fiddler是位于客户端和服务器端之间的代理,也是目前最常用的抓包工具之一 。它能够记录客户端和服务器之间的所有 请求,可以针对特定的请求,分析请求数据、设置断点、...

    APP爬虫—Fiddler的安装与使用

    Fiddler的简介

    Fiddler是位于客户端和服务器端之间的代理,也是目前最常用的抓包工具之一 。它能够记录客户端和服务器之间的所有 请求,可以针对特定的请求,分析请求数据、设置断点、调试web应用、修改请求的数据,甚至可以修改服务器返回的数据,功能非常强大,是web调试的利器。
    看到这么多的应用,是不是就迫不及待的想要开始你的抓包之旅呢,不要急,俗话说的好:工欲善其事,必先利其器,我们先来安装Fiddler吧。

    Fiddler的下载

    • 打开官网,官网下载地址是https://www.telerik.com/download/fiddler
    • 打开以后选择你的相关信息如下图:
      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wsMFBrqc-1601297571699)(assets/1581705701897.png)]
    • 然后点击Download按钮开始下载

    Fiddler的安装

    • 下载完成后双击安装包,如下图:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9Paciq9c-1601297571700)(assets/1581706754433.png)]

    • 点击I Agree按钮,然后选择你想要存放的安装目录,如果不需要修改,使用默认的即可。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tp7jMtO4-1601297571701)(assets/1581706849328.png)]

    • 点击Install按钮,等待一会时间后即可安装成功。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4R6NgamM-1601297571704)(assets/1581706879879.png)]

    • 点击Close按钮
    • 到这里我们就初步安装成功了

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gIjKKdSw-1601297571706)(assets/Snipaste_2020-02-15_18-27-46.png)]

    Fiddler的配置

    端监听手机端设置

    但是如果你想要对手机上的app进行抓包怎么办呢,那么你还需要进行以下操作:

    首先你的Fiddler所在的电脑和手机必须处在同一个局域网内(即连着同一个路由器)。

    查看你的本机IP地址,在Fiddler的右上角有一个Online按钮,点击一下会显示你的IP信息

    配置连接信息:Tools > Options >Connections

    • 端口默认是8888,你可以进行修改。

    • 勾选 Allow remote computers to connect 选项,然后重启Fiddler,再次打开时会弹出一个信息,选择ok即可。

    • [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HOc9Usnm-1601297571707)(assets/1581707266685.png)]

    • fiddler默认只抓http请求,若要抓https请求,要进入tools-fiddler options设置

      [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5EeHdjX2-1601297571707)(assets/1581710000950.png)]

    手机的设置

    打开你的手机,找到你所连接的WIFI,长按选择修改网络,输入密码后往下拖动,然后选择wifi

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gCmulgSr-1601297571708)(assets\image-20200529140613500.png)]

    然后选择更多设置

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WevoR8cA-1601297571708)(assets\image-20200529140706855.png)]

    然后点击已经连接的wifi

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jgzLUlet-1601297571709)(assets\image-20200529141424552.png)]

    然后勾选显示高级选项,然后在代理一栏选择手动,再将你先前查看的IP地址端口号输入fiddler抓包的代理,然后保存。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-H8xeGkWQ-1601297571709)(assets\image-20200529141822614.png)]

    重启fiddler,最后安装手机证书,在手机浏览器一栏输入fiddler的运行地址

    ipv4.fiddler:8888
    

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bDaw9aCW-1601297571710)(assets\image-20200529142201629.png)]

    点击 FiddlerRoot certificate 就会下载证书,下载完之后点击下载证书,随便输入一个名字即可安装好。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OQU8lfiw-1601297571710)(assets\image-20200529142458062.png)]

    点击确定之后,就安装好了。

    测试一下,比如在手机上打开app,找到评论的那一个请求。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LXnQhMo8-1601297571711)(assets\image-20200529143147115.png)]

    Fiddler功能区说明

    字段说明

    ​ Fiddler想要抓到数据包,要确保Capture Traffic是开启,在File –> Capture Traffic。开启后再左下角会有显示,当然也可以直接点击左下角的图标来关闭/开启抓包功能。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-N9TARi4u-1601297571711)(03 APP爬虫.assets/image-20200820151128008.png)]

    Fiddler开始工作了,抓到的数据包就会显示在列表里面,下面总结了这些都是什么意思:

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bx5e1a2c-1601297571712)(03 APP爬虫.assets/image-20200820153123033.png)]

    名称 含义
    # 抓取HTTP Request的顺序,从1开始,以此递增
    Result HTTP状态码
    Protocol 请求使用的协议,如HTTP/HTTPS/FTP等
    Host 请求地址的主机名
    URL 请求资源的位置
    Body 该请求的大小
    Caching 请求的缓存过期时间或者缓存控制值
    Content-Type 请求响应的类型
    Process 发送此请求的进程:进程ID
    Comments 允许用户为此回话添加备注
    Custom 允许用户设置自定义值

    左边看完了,现在可以看右边了。右边是请求体和响应体数据!我们所有请求需要的参数就在右边上半部分找

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vUZJTV7b-1601297571713)(03 APP爬虫.assets/image-20200820153746804.png)]

    • 通常我们在 StatisticsRow 栏目下就可以看到完整的请求体数据

    案例:全民小视频品

    下载一个视频

    在手机软件中,安装好全民小视频之后,刷视频之后就能在fiddler看到抓包的信息

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SwZeGiuT-1601297571713)(assets\image-20200529155629028.png)]

    • Row 栏目下就可以看到完整的请求体数据

    案例:全民小视频品

    下载一个视频

    在手机软件中,安装好全民小视频之后,刷视频之后就能在fiddler看到抓包的信息

    [外链图片转存中…(img-SwZeGiuT-1601297571713)]

    然后将右边请求体的数据构建成requests请求即可拿到数据。

    展开全文
  • APP爬虫技术总结

    万次阅读 2019-05-05 21:13:46
    APP常用抓包技术 - 工具 Charles,fiddler,burpsuite,Packet Capture等,具体操作可以查找百度 - 抓包方法 a.常规操作直接抓 b.使用Xposed+JustTrustMe关闭SSL证书验证抓包 关闭SSL证书校验之前抓包
  • 使用Airtest超快速开发App爬虫想开发网页爬虫,发现被反爬了?想对 App 抓包,发现数据被加密了?不要担心,使用 Airtest 开发 App 爬虫,只要人眼能看到,你就能抓到,最快只需要2分钟,兼容 Unity3D、Cocos2dx-*、...
  • (一)反编译工具(安卓逆向助手) 给大家介绍一个特别牛的工具全自动的。(Android逆行助手.exe) 下载链接:https://download.csdn.net/download/bigboy_coder/11180119 1、将.apk 文件直接拖进逆向助手 。选择...
  • 手机APP爬虫[爬虫专题(19)]

    万次阅读 热门讨论 2019-06-16 00:47:26
    《目录》 原理 下载工具 Charles 的配置 截取⼿机设备上的网络封包 截取 Https 通讯信息 原理 手机app一般以json 传输,和网页一样。 只是网页...
  • 不要担心,使用 Airtest 开发 App 爬虫,只要人眼能看到,你就能抓到,最快只需要2分钟,兼容 Unity3D、Cocos2dx-*、Android 原生 App、iOS App、Windows Mobile……。Airtest是网易开发的手机UI界面自动化测试工具...
  • 不要担心,使用 Airtest 开发 App 爬虫,只要人眼能看到,你就能抓到,最快只需要2分钟,兼容 Unity3D、Cocos2dx-*、Android 原生 App、iOS App、Windows Mobile……。 Airtest是网易开发的手机UI界面自动化测试...
  • 豆果美食菜谱爬取 主要功能 多线程爬取豆果美食APP...python 编写爬虫代码 vscode 编辑器 mongoDB 存储数据 ROBO 3T mongoDB可视化工具 豆果界面 一些截图 代码 spider_douguo.py: # spider_douguo.py impor...
  • 这里写自定义目录标题【最新2020.3】小红书数据采集 APP 爬虫 入门 (1)关于抓包工具Xposted框架+Justtrustme愉快抓包 ...花了5天时间研究app爬虫内容,整合到此,以小红书为案例与大家分享中间经过的坑。【最新可...
  • Airtest Airtest 简介: AirtestIDE 是一个跨平台的UI自动化测试编辑器,适用于游戏和App。 自动化脚本录制、一键回放、报告查看,轻而易举实现自动化测试流程; 支持基于图像识别的 Airtest 框架,...类似工具:ui
  • APP爬虫之央视新闻

    2020-06-05 11:30:14
    需求:首先除了基本pycharm配置之外,你还需要一步手机或者一模拟器(这里使用落电模拟器),以及用于抓包的工具(我使用的是fiddle) 打开你安装好的央视新闻APP和我的fiddle(记得配置好fiddle) 选择要爬取的...
  • 使用Airtest超快速开发App爬虫想开发网页爬虫,发现被反爬了?想对 App 抓包,发现数据被加密了?不要担心,使用 Airtest 开发 App 爬虫,只要人眼能看到,你就能抓到,最快只需要2分钟,兼容 Unity3D、Cocos2dx-*、...
  • as android开发工具 已 root 的安卓手机 android和python的frida环境 描述 之前在如何让app不走代理的文章中写了一个小的app的demo。现在我准备一步一步的hook这个demo。以便能加深对frida 的理解。
  • 不要担心,使用 Airtest 开发 App 爬虫,只要人眼能看到,你就能抓到,最快只需要2分钟,兼容 Unity3D、Cocos2dx-*、Android 原生 App、iOS App、Windows Mobile……。 Airtest是网易开发的手机UI界面自动化测试...
  • 不要担心,使用 Airtest 开发 App 爬虫,只要人眼能看到,你就能抓到,最快只需要2分钟,兼容 Unity3D、Cocos2dx-*、Android 原生 App、iOS App、Windows Mobile……。Airtest是网易开发的手机UI界面自动化测试工具...
  • 全面超越Appium,使用Airtest超快速开发App爬虫 想开发网页爬虫,发现被反爬了?想对 App 抓包,发现数据被加密了?不要担心,使用 Airtest 开发 App 爬虫,只要人眼能看到,你就能抓到,最快只需要2分钟,兼容 ...
  • app爬虫之航班数据获取

    千次阅读 2019-07-25 17:57:16
    工具介绍 Airtest是网易出的基于图像识别和Poco控件识别的一款UI自动化测试工具。其功能类似于appium,但是但是Appium的安装配置环境相对复杂,而Airtest则显得十分简单,只需 去官网下载...
  • mitmdump是mitmproxy的命令行接口,比Fiddler、Charles等工具方便的地方是它可以对接Python脚本。 有了它我们可以不用手动截获和分析HTTP请求和响应,只需写好请求和响应的处理逻辑即可。 它还可以实现数据的解析...
  • 前言frida 真的是 app 逆向的神器,当你遇上他的时候,就会爱上他。...知识准备frida 基础知识android 知识环境android studioandroid 开发工具已 root 的安卓手机android 和 python 的 frida 环境 ...
  • 记得读大学时,看课程信息,查分数,看美女(嘘)都会使用超级课程表APP,当时这款APP非常火爆,...这次爬虫和以往不同,利用fiddler抓包工具,爬取手机APP数据,爬取的内容为热门内容,总共只有150条,爬虫代码很乱...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 525
精华内容 210
关键字:

app爬虫工具

爬虫 订阅