Samoy的小窝

千里之行,始于足下 万行代码,始于指下

一只默默工作的程序猿


欢迎光临Samoy的小窝

利用抓包工具获取今日头条的文章信息

安装

Windows推荐使用Fiddler,Mac推荐使用Charles。两个工具均属于收费应用,请自行百度下载地址。由于笔者使用的是Mac,接下来以Charles为例来做说明,Fiddler与其大同小异。

Charles配置

首先我们打开Charles,界面如下: Charles界面 此时没有任何信息,接下来我们点击Proxy->Proxy Settings,界面如下: 配置代理 然后我们来找到电脑的IP地址,命令行输入ifconfig或者在系统偏好设置->网络中查看 查看IP地址

iPhone配置

切记:先将手机上开启的VPN关掉。(由于截图上含有VPN标记,特此提醒。) 将iPhone与电脑连接到同一网络下,然后打开无线局域网,点击网络列表右侧的i ,如图所示: iPhone无线局域网 然后点击配置代理->手动,将刚才电脑上的ip(192.168.1.111)和端口(8888)填入代理,如图所示: iPhone配置代理 点击储存。接下来我们用iPhone随意进行网络请求,再来查看Charles,会弹出如下界面: Charles询问界面 点击Allow,即可进行网络抓包。

Android手机配置

注:这一步骤与上一步骤互斥,你用哪个操作系统的手机就看哪一步。 首先将Android手机(以小米手机为例)和电脑连接到同一网络下,打开设置->WLAN,点击所连接的WiFi右侧的>,进入代理设置页面: WIFI列表 然后我们就进入代理设置页面,设置方法与iPhone相似,如图: 代理设置 点击右上角的✔️进行储存。随意进行网络请求,再去看Charles会弹出如下界面: Charles询问界面 点击Allow即可进行网络抓包。

HTTPS配置(可选)

上述步骤配置完成之后,可能我们只能进行HTTP的请求,HTTPS的请求返回的都是UNKNOWN,这个时候需要我们进行额外配置,选中Proxy->SSL Proxying Settings: SSL Proxying Settings 然后将443端口添加进去,如图: 添加443端口 Host的*代表任意地址。 然后点击Help -> SSL Proxying -> Install …. Remote Browser,如图所示: 进行手机SSL配置 然后Charles会弹出如下界面: 证书地址 手机浏览器输入chls.pro/ssl进行证书的安装:

  1. iPhone的安装: iPhone证书安装 iPhone证书安装
  2. Android的安装: 注:小米手机请勿使用自带浏览器下载! 下载证书 进入设置,选择更多设置->系统安全->加密与凭据->从存储设备安装,界面如下: 安装生疏 红色框选的就是我们刚才下载的证书,点击它,可能会让你输入手机密码,然后弹出如下界面: 命名证书 证书名称可以随意取,这样我们就把证书安装成功了,接下来就可以抓包HTTPS的请求了。

网络抓包

经过iPhone配置或者Android配置步骤我们就可以进行网络抓包了,此时Charles界面如下: 网络抓包界面

  1. ①是清除网络请求按钮,由于我们进行网络请求的时候会比较杂乱,使用它可以进行清空。
  2. ②是网络请求列表区域,展示了我们所有进行的网络请求。
  3. ③可以根据关键字进行网络请求过滤,避免展示不必要的网络请求。

获取今日头条的文章

首先将刚才进行的网络请求清空,然后用手机打开今日头条,看到界面如下: 头条界面 然后我们再去看Charles,界面展示如下: 抓包结果

  1. ①区域是我们进行的网络请求列表,我选中的蓝线是请求的地址。
  2. ②区域是网络请求的参数,这些参数有些是加密的,有些参数是不需要的,在此就不做深入分析了,有兴趣的小伙伴可以自行研究一下。
  3. ③区域即我们进行网络请求的结果,由于手机的网络接口都是有JSON进行传输的,因此这里使用JSON Text进行查看,可以看到这里所获取的数据与手机端展示的数据是一致的。

结语

大功告成,这就是利用Charles进行网络抓包的步骤,接下来我们利用获取到地址和参数,就可以用自己的脚本去调用这些api了,这里不再讨论了。

最近的文章

Android触摸事件传递机制

触摸事件的类型触摸事件对应的MotionEvent类型,事件类型主要有如下三种: ACTION_DOWN:用户手指按下的操作,一个按下操作标志着一次触摸事件的开始. ACTION_MOVE:用户按压屏幕后,在松开之前,如果移动的距离超过一定的阈值,那么就会被判定为ACTION_MOVE操作,一般情况下,手指的轻微移动都会触发这一事件. ACTION_UP:用户手指离开屏幕的操作,这一操作标志一个事件的结束. 事件传递的三个阶段 分发(Dispatch):事件的分发对应着d...…

更早的文章

Python实现微信的发送消息,定时发送,自动回复功能

代码如下:import itchatimport jsonfrom itchat.content import *from apscheduler.schedulers.blocking import BlockingScheduler# 首先登录微信,此方法调用后屏幕上会弹出一个二维码,使用手机微信扫描该二维码即可登录微信."""hotReload表示热部署,这样调试的时候就不用频繁登录了"""itchat.auto_login(hotReload=True)# 获取好友列表,调用此方法...…