使用APP数据抓取详情介绍

Fiddler
🧾 🧾Fiddler是一款免费的Web调试代理工具,也是目前最常用的“HTTP”抓包工具之一,它可以截取HTTP/HTTPS流量并且允许你查看、分析和修改这个流量。Fiddler在Web开发和测试中非常有用,因为它可以帮助你检查Web应用程序的性能、调试网络问题和安全漏洞。它还提供了一个可扩展的架构,使得它可以通过插件支持其他功能。Fiddler可用于Windows 、macOS 和Linux等多种操作系统。

安装包提取链接,免费分享给大家:

🎁🎁链接:https://pan.baidu.com/s/1AG7AerCCf0-wzEg8IrYvQQ?pwd=r1js 提取码:r1js

如果不会抓的话可以使用已经封装好的api接口:获取key和密钥

工作原理
Fiddler 是以代理web服务器的形式工作的,它使用代理地址:127.0.0.1, 端口:8888.
当Fiddler会自动设置代(退出的时候它会自动注销代理),这样就不会影响别的程序。不过如果Fiddler非正常退出,这时候因为Fiddler没有自动注销,会造成网页无法访问。解决的办法是重新启动Fiddler.
安装文件包

安装完成Fiddler后的配置
前提条件
🎯在使用Fiddler抓取数据包的时候,需要满足以下前提条件是:

(1)在自己的电脑上安装Fiddler的工具。
(2)电脑连接的网络需要和手机连接同一个网络 否则Andriod不能把HTTP发送到Fiddler的上。

工具配置
🎯 解密HTTPS流量
首先打开Fiddler==》选择“Tools”菜单下的“Options”功能==》点击“HTTPS”。选中"Decrpt HTTPS traffic"

配置完成后可以对网页数据进行抓包

手机数据抓取
Fiddler手机端配置
🧾 🧾fiddler监听端口默认是 8888,你可以把它设置成任何你想要的端口。

Fiddler==》选择“Tools”菜单下的“Options”功能==》Connections

勾选上 “Allowremote computersto connect” ,允许远程设备连接。其中为了减少干扰,可以去掉 “Act assystem proxy on startup” 。port为代理端口号8888

保持和我一样:

首先查看自己电脑的IP地址,确保手机和电脑在同一个局域网内

🧾 🧾win+r 然后输入cmd,打开命令窗口,然后输入ipconfig命令查看ip

 

手机端操作
🧾 🧾1打开 WiFi 设置页面,选择要连接的 wifi(这里连接的一定要和自己电脑上面的Wifi是同一个Wifi) ,并选择“修改网络”。
在接下来弹出的对话框中,勾选“显示高级选项”。在接下来显示的页面中,点击“代理”,选择“手动。
代理服务器主机名设为 PC 的 IP ,代理服务器端口设为 Fiddler 上配置的端口 8888,点“保存”。至此所有的配置已经基本完成。

2 将 Fiddler 代理服务器的证书导到手机上才能抓这些 APP 的包。导入的过程:打开浏览器,在地址栏中输入代理服务器的 IP 和端口(即电脑的IP加fiddler的端口),会看到一个Fiddler 提供的页面,然后确定安装就好了。
在手机浏览器输入电脑ip加端口 例如 192.168.0.156:8888

输入后会进入到网页中并且跳出是否认证,如果不能打开可以重启fiddler

进入网页后选择You can download the FiddlerRoot certificate进行代理证数安装

下载完成后进行安装,点击证书进行证书安装,可以备注证书的名称,Android手机这样一般就可以用了。

iPhone的话还要授权一下,在你手机的 设置–>通用–>关于本机–>证书信任设置–>把刚刚下载的证书打上勾

Fiddler数据参数
Result : 请求的 HTTP(s) 状态吗
Protocol : 请求协议
HOST : 请求的主机名
URL : 请求的资源目录位置
Body : 请求大小
Caching : 请求的缓存
Content-Type : 服务器响应的实体类型
Process : 是谁(进程)发送的
Comments : 备注
Custom : 自定义

实战演示

本次实战以懂车帝为例
🧾 🧾目的是获取头条数据的评论全部获取保存到csv文件,数据要求用户名称 id 评论内容

🎯手机证书安装成功后,接下来重新打开Fiddler。
在打开手机app之前,我们先清楚数据:

接下来打开手机懂车帝app,随机选择一条头条新闻,然后打开。

我们在fiddler中,看到很多抓包的数据:

我们想要的数据就在里面,我们应该怎么找到数据呢,我们可以观察头条新闻中的主要信息,然后摘取部分来进行搜索

对查找到的数据进行查看 

 

 我们找到了数据在什么地方,接下来我们需要通过链接将数据获取到本地,方便我们对数据进行解析和提取

下一步是通过代码将数据获取到本地,并进行解析:

我们得到的url:

url = 'https://api5-normal-lq.dcarapi.com/motor/proxy/comment_list/article/v3/tab_comments/?offset=0&group_id=7223243569958879803&item_id=7223243569958879803&tab_index=0&top_comment_id=0&count=200&aggr_type=1&msg_id=0&device_platform=android&os=android&ssmix=a&_rticket=1683296556004&cdid=24882b7f-2668-4e23-ab20-c9363fb37926&channel=car_xiaomi_64&aid=36&app_name=automobile&version_code=754&version_name=7.5.4&manifest_version_code=754&update_version_code=7543&ab_client=a1%2Cc2%2Ce1%2Cf2%2Cg2%2Cf7&ab_group=3167591%2C3577237&resolution=1080*2250&dpi=440&device_type=M2102J2SC&device_brand=Xiaomi&language=zh&os_api=33&os_version=13&ac=wifi&iid=2307210525559904&device_id=3879510221522280&city_name=%E6%8A%9A%E5%B7%9E&gps_city_name=%E6%8A%9A%E5%B7%9E&selected_city_name&district_name=%E5%8D%97%E4%B8%B0&gps_district_name=%E5%8D%97%E4%B8%B0&rom_version=miui_v140_v14.0.4.0.tgacnxm&longi_lati_type=0&longi_lati_time=0&isTTWebview=1&content_sort_mode=0&total_memory=7.43&cpu_name=Qualcomm+Technologies%2C+Inc+SM8250&overall_score=8.776&cpu_score=8.8777&host_abi=arm64-v8a'

 现在又回到了之前我们学过的步骤,知道了url,那我们就可以来获取数据了.
通过代码,我们将数据获取到本地;

接下来对数据进行解析,拿到我们需要的数据:

import requests
import csv
headers = {

    'User-Agent': 'Dalvik/2.1.0 (Linux; U; Android 13; M2102J2SC Build/TKQ1.220829.002) automobile/7.5.4 cronet/TTNetVersion:d5a7acd8 2022-07-15 QuicVersion:b314d107 2021-11-24'
}

head = ['id','昵称','内容']

# f = open('懂车帝APP评论.csv', 'w+', encoding='utf-8', newline='')
# csv_file = csv.writer(f)
# csv_file.writerow(head)

url = 'https://api5-normal-lq.dcarapi.com/motor/proxy/comment_list/article/v3/tab_comments/?offset=0&group_id=7223243569958879803&item_id=7223243569958879803&tab_index=0&top_comment_id=0&count=200&aggr_type=1&msg_id=0&device_platform=android&os=android&ssmix=a&_rticket=1683296556004&cdid=24882b7f-2668-4e23-ab20-c9363fb37926&channel=car_xiaomi_64&aid=36&app_name=automobile&version_code=754&version_name=7.5.4&manifest_version_code=754&update_version_code=7543&ab_client=a1%2Cc2%2Ce1%2Cf2%2Cg2%2Cf7&ab_group=3167591%2C3577237&resolution=1080*2250&dpi=440&device_type=M2102J2SC&device_brand=Xiaomi&language=zh&os_api=33&os_version=13&ac=wifi&iid=2307210525559904&device_id=3879510221522280&city_name=%E6%8A%9A%E5%B7%9E&gps_city_name=%E6%8A%9A%E5%B7%9E&selected_city_name&district_name=%E5%8D%97%E4%B8%B0&gps_district_name=%E5%8D%97%E4%B8%B0&rom_version=miui_v140_v14.0.4.0.tgacnxm&longi_lati_type=0&longi_lati_time=0&isTTWebview=1&content_sort_mode=0&total_memory=7.43&cpu_name=Qualcomm+Technologies%2C+Inc+SM8250&overall_score=8.776&cpu_score=8.8777&host_abi=arm64-v8a'
html = requests.get(url, headers=headers).json()
num = html['total_number']
dic_list = []
for j in html['data']:
    txt = j['comment']['text']
    name = j['comment']['user_name']
    id = j['comment']['id_str']
    dic_list.append([id,name,txt])
# for data in dic_list:
#     csv_file.writerow(data)

print(dic_list)
# print(html)

# f.close()



 运行结果如下:

接着我们将数据写入csv文件中: 

import requests
import csv
headers = {

    'User-Agent': 'Dalvik/2.1.0 (Linux; U; Android 13; M2102J2SC Build/TKQ1.220829.002) automobile/7.5.4 cronet/TTNetVersion:d5a7acd8 2022-07-15 QuicVersion:b314d107 2021-11-24'
}

head = ['id','昵称','内容']

f = open('懂车帝APP评论.csv', 'w+', encoding='utf-8', newline='')
csv_file = csv.writer(f)
csv_file.writerow(head)

url = 'https://api5-normal-lq.dcarapi.com/motor/proxy/comment_list/article/v3/tab_comments/?offset=0&group_id=7223243569958879803&item_id=7223243569958879803&tab_index=0&top_comment_id=0&count=200&aggr_type=1&msg_id=0&device_platform=android&os=android&ssmix=a&_rticket=1683296556004&cdid=24882b7f-2668-4e23-ab20-c9363fb37926&channel=car_xiaomi_64&aid=36&app_name=automobile&version_code=754&version_name=7.5.4&manifest_version_code=754&update_version_code=7543&ab_client=a1%2Cc2%2Ce1%2Cf2%2Cg2%2Cf7&ab_group=3167591%2C3577237&resolution=1080*2250&dpi=440&device_type=M2102J2SC&device_brand=Xiaomi&language=zh&os_api=33&os_version=13&ac=wifi&iid=2307210525559904&device_id=3879510221522280&city_name=%E6%8A%9A%E5%B7%9E&gps_city_name=%E6%8A%9A%E5%B7%9E&selected_city_name&district_name=%E5%8D%97%E4%B8%B0&gps_district_name=%E5%8D%97%E4%B8%B0&rom_version=miui_v140_v14.0.4.0.tgacnxm&longi_lati_type=0&longi_lati_time=0&isTTWebview=1&content_sort_mode=0&total_memory=7.43&cpu_name=Qualcomm+Technologies%2C+Inc+SM8250&overall_score=8.776&cpu_score=8.8777&host_abi=arm64-v8a'
html = requests.get(url, headers=headers).json()
num = html['total_number']
dic_list = []
for j in html['data']:
    txt = j['comment']['text']
    name = j['comment']['user_name']
    id = j['comment']['id_str']
    dic_list.append([id,name,txt])
for data in dic_list:
    csv_file.writerow(data)

print(dic_list)
# print(html)

f.close()



  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值