如何使用Python和Fiddler抓取华润有巢公寓APP数据?

2026-05-26 19:031阅读0评论SEO资源
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1709个文字,预计阅读时间需要7分钟。

如何使用Python和Fiddler抓取华润有巢公寓APP数据?

使用Python和Fiddler爬取华悦有间公寓名词APP信息

一、前言

本文将介绍如何使用Python和Fiddler爬取华悦有间公寓名词APP的相关信息。以下内容包括:

1. Fiddler的安装与设置

2.完整代码展示

3.代码解读

4.结果截图

5.遇到的问题及解决方案

6.免责声明

二、Fiddler的安装与设置

1. 下载Fiddler软件:从Fiddler官网(https://www.fiddler.com/)下载最新版本的Fiddler。

2.安装Fiddler:双击下载的安装包,按照提示完成安装。

3.设置Fiddler:运行Fiddler,点击工具>选项,在捕获选项卡中勾选HTTP和HTTPS。

4.设置代理:在捕获选项卡中,设置HTTP代理为127.0.0.1,端口为8888。

5.启动Fiddler:点击工具>Capture Traffic,开始监听网络请求。

三、完整代码展示

python

import requestsfrom fiddler import *

设置Fiddler代理session=FiddlerCore.CreateSession()session.AddProxy(127.0.0.1:8888)

设置请求头headers={ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}

设置请求URLurl=https://www.example.com/api/getInfo

发送请求response=requests.get(url, headers=headers)

输出结果print(response.text)

四、代码解读

1. 导入requests库:用于发送HTTP请求。

2.导入fiddler库:用于设置Fiddler代理。

3.创建Fiddler会话:创建一个Fiddler会话,并设置代理。

4.设置请求头:设置请求头,包括User-Agent等。

5.设置请求URL:设置要爬取的URL。

6.发送请求:使用requests库发送GET请求。

7.输出结果:打印出请求返回的结果。

五、结果截图

(此处应插入结果截图)

六、遇到的问题及解决方案

1. 请求被拦截:如果请求被Fiddler拦截,可以在Fiddler中手动添加该域名到信任域列表,或者修改代码中的URL为直接访问API的URL。

2.请求超时:如果请求超时,可以尝试增加请求超时时间或检查网络连接。

七、免责声明

1. 本代码仅供参考,不保证适用于所有场景。

2.请在使用过程中遵守相关法律法规,不得用于非法用途。



如何使用Python和Fiddler抓取华润有巢公寓APP数据?

python+fiddler爬取华润有巢公寓app

  • ​​前言​​
  • ​​fiddler安装及设置​​
  • ​​完整代码​​
  • ​​代码解读​​
  • ​​结果截图​​
  • ​​遇到的坑及解决办法​​
  • ​​免责声明​​

前言

随着移动端越发方便,越来越多的企业不再开放web端,转而开发移动端app或者小程序,这不,在百度找了半天也不见华润有巢的官方网站,可是发现了这家伙有自己的app和小程序,如何才能从其app或者小程序里面拿到他们数据呢?之前都是爬取web网页端的数据,这要爬app端数据,是一个新鲜的尝试,网上查询爬取app方法式主要通过fiddler和charles抓包的方式截取服务器返回来的数据,获取其访问地址和原json格式数据,本文主要介绍如何通过fiddler来实现抓包,俗话说的好,磨刀不误砍柴工,先从安装设置开始。

fiddler安装及设置

  • fiddler下载与安装
    进入fiddler官网​​www.telerik.com/download/fiddler​​ , 填写你的应用目的,邮箱和国家,同意用户许可协议,点击download。 安装好,从开始栏打开fiddler,会弹出下面窗口,直接yes便是。
  • fiddler设置
    进入主页面,点击菜单栏的Tools,选择Options, 主要设置的有HTTPS和Connections两项,勾选Capture HTTPS CONNECTs和Decrypt HTTPS traffic,然后再点击右侧的Actions点击Trust Root Certificate,安装CA证书,在Connections选项里面的Fiddler listen to port 后面填上8888,表示监听端口为8888,并把Allow romete computers to connect勾上,点击ok键确认,最后点击主页面右上角的Online会出现你电脑的ip地址,记住这个ip 后面会用到,至此,pc端的fiddler算是设置完成,接下来进行手机设置。



  • 手机端设置
    使用Fiddler进行手机抓包,首先要确保手机和电脑的网络在一个内网中,可以使用让电脑和手机都连接同一个路由器,这里演示一下iphone6的手机端设置,其他大同小异,主要是进入wifi设置里面手动设置代理,填上你刚才的ip地址和port 号,然后用手机浏览器地址栏输入 localhost:8888 下载FiddlerRoot certificate安全证书,苹果手机还需要进入通用设置里面的profile信任FiddlerRoot。


  • 一切准备就绪后就要开始fiddler抓包了,打开你手机有巢app, 同时你的fiddler会capture很多ris.crland.com.cn/api/public/app/project/querAllPro' #请求url

    header={"Host": "ris.crland.com.cn",
    "Content-Type": "application/json",
    "Cookie": "dtCookie=2$4039DDB3F6634C1FE36E57EB5E779E43; SESSIONID_HAP=811c1e06-3afc-4968-b3a5-cd4bb67497c8",
    "Connection": "keep-alive",
    "Accept": "*/*",
    "User-Agent": "crlandRent/3.3 (iPhone; iOS 12.4.1; Scale/2.00)",
    "Accept-Language": "zh-Hans;q=1",
    "Content-Length": "105",
    "Accept-Encoding": "br, gzip, deflate"} #构造请求头
    for cityid in ["1","9","15","3","11","22","8","2","14","6","32"]: #城市列表
    data_form = {"equipmentId":"C2CCEB9A-4EA2-4F5A-9275-A6D3ECBAF95F","cityId":cityid,"pageSize":"20","token":"","page":"1"} #请求数据表单
    #print(data_form)
    res=requests.post(url,data=json.dumps(data_form),headers=header,verify=False) #post请求
    soup=json.loads(res.text) #字典化
    #print(soup)
    project_list=soup["data"]["projectAll"] #项目列表
    project_num=len(project_list) #项目总数
    for project in project_list: #对项目进行循环
    city=project["cityName"] #城市
    project_name=project['projectName'] #项目名称
    address=project["address"] #地址
    print(city,project_name,address) #测试
    insert_data=("insert into youtha(city,project_name,address)""values(%s,%s,%s)") #控制插入格式
    available_data=([city,project_name,address]) #待插入数据库数据
    cursor.execute(insert_data,available_data) #执行插入操作
    db.commit() #主动提交执行

    代码解读

    你会发现app抓取和web抓取并无两样,甚至比web抓取的代码还要简单,因为app主要通过api返回来的数据已经是很规范的json格式了,而app抓取最关键的是通过抓包工具分析出数据大门url长什么样子,构造请求头header,,请求方式是post还是get, 如果是post请求构造好请求表单data_form,记得这里表单要利用json.dumps()函数转化为json格式,因为在请求header里面有一个限制"Content-Type": “application/json”,你把数据表单json化后,你请求回来的数据也是json格式,你可以直接取下来,也可以像我这样先利用json.loads()函数字典化请求出来的数据再取,纯属个人偏爱。

    结果截图

    遇到的坑及解决办法

  • 手机打开app,显示网络连接失败,可以通过 手机设置 - > 通用 - > 关于本机 - > 证书信任设置 - > 选上fiddler的证书
  • 复制url到浏览器的时候,显示405错误代码
    因为有巢是post请求,首先仔细检查你的请求头,需要构造data_form,并且加用json.loads()函数来转为json格式
  • data_form = {"equipmentId":"C2CCEB9A-4EA2-4F5A-9275-A6D3ECBAF95F","cityId":cityid,"pageSize":"20","token":"","page":"1"} #请求数据表单
    json.dumps(data_form) #转为json格式

    免责声明

    Python爬虫仅为学习交流,如有冒犯,请告知删。



    本文共计1709个文字,预计阅读时间需要7分钟。

    如何使用Python和Fiddler抓取华润有巢公寓APP数据?

    使用Python和Fiddler爬取华悦有间公寓名词APP信息

    一、前言

    本文将介绍如何使用Python和Fiddler爬取华悦有间公寓名词APP的相关信息。以下内容包括:

    1. Fiddler的安装与设置

    2.完整代码展示

    3.代码解读

    4.结果截图

    5.遇到的问题及解决方案

    6.免责声明

    二、Fiddler的安装与设置

    1. 下载Fiddler软件:从Fiddler官网(https://www.fiddler.com/)下载最新版本的Fiddler。

    2.安装Fiddler:双击下载的安装包,按照提示完成安装。

    3.设置Fiddler:运行Fiddler,点击工具>选项,在捕获选项卡中勾选HTTP和HTTPS。

    4.设置代理:在捕获选项卡中,设置HTTP代理为127.0.0.1,端口为8888。

    5.启动Fiddler:点击工具>Capture Traffic,开始监听网络请求。

    三、完整代码展示

    python

    import requestsfrom fiddler import *

    设置Fiddler代理session=FiddlerCore.CreateSession()session.AddProxy(127.0.0.1:8888)

    设置请求头headers={ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'}

    设置请求URLurl=https://www.example.com/api/getInfo

    发送请求response=requests.get(url, headers=headers)

    输出结果print(response.text)

    四、代码解读

    1. 导入requests库:用于发送HTTP请求。

    2.导入fiddler库:用于设置Fiddler代理。

    3.创建Fiddler会话:创建一个Fiddler会话,并设置代理。

    4.设置请求头:设置请求头,包括User-Agent等。

    5.设置请求URL:设置要爬取的URL。

    6.发送请求:使用requests库发送GET请求。

    7.输出结果:打印出请求返回的结果。

    五、结果截图

    (此处应插入结果截图)

    六、遇到的问题及解决方案

    1. 请求被拦截:如果请求被Fiddler拦截,可以在Fiddler中手动添加该域名到信任域列表,或者修改代码中的URL为直接访问API的URL。

    2.请求超时:如果请求超时,可以尝试增加请求超时时间或检查网络连接。

    七、免责声明

    1. 本代码仅供参考,不保证适用于所有场景。

    2.请在使用过程中遵守相关法律法规,不得用于非法用途。



    如何使用Python和Fiddler抓取华润有巢公寓APP数据?

    python+fiddler爬取华润有巢公寓app

    • ​​前言​​
    • ​​fiddler安装及设置​​
    • ​​完整代码​​
    • ​​代码解读​​
    • ​​结果截图​​
    • ​​遇到的坑及解决办法​​
    • ​​免责声明​​

    前言

    随着移动端越发方便,越来越多的企业不再开放web端,转而开发移动端app或者小程序,这不,在百度找了半天也不见华润有巢的官方网站,可是发现了这家伙有自己的app和小程序,如何才能从其app或者小程序里面拿到他们数据呢?之前都是爬取web网页端的数据,这要爬app端数据,是一个新鲜的尝试,网上查询爬取app方法式主要通过fiddler和charles抓包的方式截取服务器返回来的数据,获取其访问地址和原json格式数据,本文主要介绍如何通过fiddler来实现抓包,俗话说的好,磨刀不误砍柴工,先从安装设置开始。

    fiddler安装及设置

  • fiddler下载与安装
    进入fiddler官网​​www.telerik.com/download/fiddler​​ , 填写你的应用目的,邮箱和国家,同意用户许可协议,点击download。 安装好,从开始栏打开fiddler,会弹出下面窗口,直接yes便是。
  • fiddler设置
    进入主页面,点击菜单栏的Tools,选择Options, 主要设置的有HTTPS和Connections两项,勾选Capture HTTPS CONNECTs和Decrypt HTTPS traffic,然后再点击右侧的Actions点击Trust Root Certificate,安装CA证书,在Connections选项里面的Fiddler listen to port 后面填上8888,表示监听端口为8888,并把Allow romete computers to connect勾上,点击ok键确认,最后点击主页面右上角的Online会出现你电脑的ip地址,记住这个ip 后面会用到,至此,pc端的fiddler算是设置完成,接下来进行手机设置。



  • 手机端设置
    使用Fiddler进行手机抓包,首先要确保手机和电脑的网络在一个内网中,可以使用让电脑和手机都连接同一个路由器,这里演示一下iphone6的手机端设置,其他大同小异,主要是进入wifi设置里面手动设置代理,填上你刚才的ip地址和port 号,然后用手机浏览器地址栏输入 localhost:8888 下载FiddlerRoot certificate安全证书,苹果手机还需要进入通用设置里面的profile信任FiddlerRoot。


  • 一切准备就绪后就要开始fiddler抓包了,打开你手机有巢app, 同时你的fiddler会capture很多ris.crland.com.cn/api/public/app/project/querAllPro' #请求url

    header={"Host": "ris.crland.com.cn",
    "Content-Type": "application/json",
    "Cookie": "dtCookie=2$4039DDB3F6634C1FE36E57EB5E779E43; SESSIONID_HAP=811c1e06-3afc-4968-b3a5-cd4bb67497c8",
    "Connection": "keep-alive",
    "Accept": "*/*",
    "User-Agent": "crlandRent/3.3 (iPhone; iOS 12.4.1; Scale/2.00)",
    "Accept-Language": "zh-Hans;q=1",
    "Content-Length": "105",
    "Accept-Encoding": "br, gzip, deflate"} #构造请求头
    for cityid in ["1","9","15","3","11","22","8","2","14","6","32"]: #城市列表
    data_form = {"equipmentId":"C2CCEB9A-4EA2-4F5A-9275-A6D3ECBAF95F","cityId":cityid,"pageSize":"20","token":"","page":"1"} #请求数据表单
    #print(data_form)
    res=requests.post(url,data=json.dumps(data_form),headers=header,verify=False) #post请求
    soup=json.loads(res.text) #字典化
    #print(soup)
    project_list=soup["data"]["projectAll"] #项目列表
    project_num=len(project_list) #项目总数
    for project in project_list: #对项目进行循环
    city=project["cityName"] #城市
    project_name=project['projectName'] #项目名称
    address=project["address"] #地址
    print(city,project_name,address) #测试
    insert_data=("insert into youtha(city,project_name,address)""values(%s,%s,%s)") #控制插入格式
    available_data=([city,project_name,address]) #待插入数据库数据
    cursor.execute(insert_data,available_data) #执行插入操作
    db.commit() #主动提交执行

    代码解读

    你会发现app抓取和web抓取并无两样,甚至比web抓取的代码还要简单,因为app主要通过api返回来的数据已经是很规范的json格式了,而app抓取最关键的是通过抓包工具分析出数据大门url长什么样子,构造请求头header,,请求方式是post还是get, 如果是post请求构造好请求表单data_form,记得这里表单要利用json.dumps()函数转化为json格式,因为在请求header里面有一个限制"Content-Type": “application/json”,你把数据表单json化后,你请求回来的数据也是json格式,你可以直接取下来,也可以像我这样先利用json.loads()函数字典化请求出来的数据再取,纯属个人偏爱。

    结果截图

    遇到的坑及解决办法

  • 手机打开app,显示网络连接失败,可以通过 手机设置 - > 通用 - > 关于本机 - > 证书信任设置 - > 选上fiddler的证书
  • 复制url到浏览器的时候,显示405错误代码
    因为有巢是post请求,首先仔细检查你的请求头,需要构造data_form,并且加用json.loads()函数来转为json格式
  • data_form = {"equipmentId":"C2CCEB9A-4EA2-4F5A-9275-A6D3ECBAF95F","cityId":cityid,"pageSize":"20","token":"","page":"1"} #请求数据表单
    json.dumps(data_form) #转为json格式

    免责声明

    Python爬虫仅为学习交流,如有冒犯,请告知删。