抓包工具的使用
抓包工具和PyExeJs模块
我们在处理一些网站的时候, 会遇到一些屏蔽F12, 以及只要按出浏览器的开发者工具就会关闭甚至死机的现象. 在遇到这类网站的时候. 我们可以使用抓包工具把页面上屏蔽开发者工具的代码给干掉.
一. Fiddler和Charles
这两款工具是非常优秀的抓包工具. 他们可以监听到我们计算机上所有的http网络请求. 利用这种特性. 可以获取到页面加载过程中的所有内容.
1.1 软件安装.
Win7:
win10:
1.2 fiddler简单配置(HTTPS)
接下来.我们打开www.vmgirls.com. 尝试抓包看看. 发现https的请求默认是不可用的. 需要配置一下证书.
1.3 fiddler简单使用
清理一下信息, 然后重新刷新浏览器. 就看到被响应的html内容了.
vmgirl之所以不可以打开开发者工具. 是因为在其html中导入了一个disable-devtools.js. 我们需要想办法把这个东西给干掉. 只要干掉了它. 我们就又可以打开F12的开发者工具了. 那么如何干掉它呢? 这就需要我们了解一下fiddler和charles的工作原理了.
fiddler和charles本质其实就是一个安装在这台计算机上的一个代理. 就像这样:
本质上和代理没啥区别. 但是, 由于fiddler是我们自己本地的软件. 那么我们可以在fiddler里对请求过来的内容进行截取和替换.
我们做这样一个事情. 把vmgirls的页面源代码捕获. 单独写入一个html文件. 然后把其中的disable-devtools.js部分注释掉.
现在这个页面源代码在我本地了. 我就可以进行替换了....
接下来. 重新刷新页面(ctrl+shift+r) , 发现右键有效果了.
补充:
过滤请求
重放应用场景:检测参数是否是一次性的
1.4 charles安装和使用.
charles官网: https://www.charlesproxy.com/download/
charles激活: https://www.zzzmode.com/mytools/charles/
Windows安装:
关闭Charles,重新打开即可
选择当前计算机:
选择受信任的证书机构,重启Charles,重启浏览器
Mac安装:
注意, 在windows环境下如果出现证书不可用的情况.需要手工去windows的证书管理器中, 把Charles的证书拖拽到可信任证书那一栏. 然后重启浏览器和charles就可以用了
如果证书默认就可用. 就不要胡乱拖拽
window证书管理器: win+r: 输入certlm.msc
回到Mac
搞定. 如果想要实现和fiddler一样的功能. 我也想要进行请求拦截.怎么办? 很简单
搞定.
-
替换自己的源码:
因分辨率不同,右键看不见maplocal的处理方式如下图:
- 重放:
- 修改参数:
- 请求先后顺序:
- 如何让Charles抓包自己的程序
import requests
url = "https://www.endata.com.cn/API/GetData.ashx"
proxies = { # windows的系统代理
"http": "http://127.0.0.1:8888",
"https": "http://127.0.0.1:8888"
}
year = 2023
data = {
"year": year,
"MethodName": "BoxOffice_GetYearInfoData"
}
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36"
}
resp = requests.post(url, data=data, headers=headers, proxies=proxies, verify=False)
# 坑. 如果你打开了fiddler或者charles, 此时你的程序无法发送请求...
# 解决方案: 把charles在windows系统上的代理拿过来给你程序用就可以了
# 同时, 在请求时, 增加verify=False. 就可以了.
print(resp.text)