前言
想在这里给大家分享一个FiddlerScript配合爬虫的方法
工欲善其事,必先利其器
要准备Fiddler,这个大家随便百度一下就有
python环境,而且要会安装python库
Fiddler准备
1.找到Fiddler中的FiddlerScript,会发现里面有很多代码,然后大家找到这个

2.点击一下就可以定位过去,然后把我下面发的代码复制在这里,效果就是这样的。

3.FiddlerScript代码
//过滤无关请求,只关注特定请求if (oSession.fullUrl.Contains("www.kancloud.cn/cyyspring/test")){ var html = oSession.GetResponseBodyAsString() if(html.Contains("href")){ //数据统计开始:把内容通过ajax http发送其它地方 var _xhr = new ActiveXObject('Microsoft.XMLHTTP'); var url = 'http://127.0.0.1:8000/sendData'; //发送的数据参数 var jsonString = oSession.GetResponseBodyAsString(); var requestHeaders = oSession.oRequest.headers.ToString(); var responseHeaders=oSession.oResponse.headers.ToString(); var str='{}';//构造自己的JSON http请求的信息及返回的结果 var data = Fiddler.WebFormats.JSON.JsonDecode(str); data.JSONObject["requestHeaders"]=requestHeaders; data.JSONObject["responseHeaders"]=responseHeaders; data.JSONObject["responseBody"] = jsonString; data.JSONObject["url"] = oSession.fullUrl; data.JSONObject["response_code"] = oSession.responseCode; jsonString = Fiddler.WebFormats.JSON.JsonEncode(data.JSONObject) FiddlerObject.log(jsonString); _xhr.onreadystatechange=function(){ if (_xhr.readyState==4){ FiddlerObject.log(_xhr.responseText); } }; _xhr.open('POST', url, true); _xhr.send(jsonString); //----数据统计结束----- }else{ // 弹窗报错 FiddlerObject.alert("抓取出错!"); } // if end} // if controll end
python代码
import uvicornfrom fastapi import FastAPIfrom pydantic import BaseModelimport timeclass Item(BaseModel): url:str response_code:str responseBody:str requestHeaders:str responseHeaders:str requestCookie:str responseCookie:strapp = FastAPI()@app.post("/sendData")async def post_info1(request_data:Item): print("url:", request_data.url) print("response_code:", request_data.response_code) print("responseBody:", request_data.responseBody) print('requestHeaders:',request_data.requestHeaders) print('responseHeaders:',request_data.responseHeaders) print('requestCookie:',request_data.requestCookie) print('responseCookie:',request_data.responseCookie) return 'ok'if __name__ == '__main__': uvicorn.run(app=app, host='127.0.0.1', port=8000)
学过Flask的兄弟们应该对这个并不陌生,其实就是在自己电脑上开了一个接收数据的端口
使用方法演示
演示的网站是中国裁判文书网
1.先运行python代码,如果显示下图这样,就证明端口开启了

2.接下来就是要修改一下FiddlerScript中两个地方,上面的红线处,替换为想要爬取信息的链接,只需要一部分即可,下面的红线处替换为返回值的一个参数即可

3.然后你点击想要的界面,就会发现需要的数据返回在了python运行框,剩下的大家应该就明白了吧。

最后
1.其实有些人觉得这个没什么用,这个我没办法反驳,知道该怎么用的人自然知道,而且这个不止能用于网页,APP也同样可以,如果你嫌手动麻烦的话,网页你可以直接用selenium来代替手点,APP的话可以写个按键精灵脚本。
2.这个也不是我写的,是一位叫李如意的老师写的,我发这个帖子已经征得本人同意,希望大家如果转载的话,可以带上这个署名。