簡述:獲取瀏覽器network中的請求與響應 --BrowserMob proxy
搗鼓了兩三天,踩了不少個坑,終於可以用了,網上.NET資料少的可憐,真的都是淚
一.BrowserMob proxy如何配合Selenium使用?
1.需要下載BrowserMob proxy的類庫:Here【有些地方要改的 :( 】
2.下載BrowserMob proxy插件,插件:Here
3.下載Selenium類庫,從Nuget下載最新的就可以了
剛開始使用BrowserMob proxy遇到的坑:
1.還是要說一下關於.NET資料這個資料少的可憐,過了搗鼓大半天,才跑起來,遇到的第一個問題就是,拿到的GetHar()之后拿不到數據,entries為0
不斷地調試后發現,只能拿到Http網頁的responce,絕望了呀,現在都是HTTPs的網址,於是又翻過去找【外面的資料更多億點,內部看不到有人討論】
說是要設置SslProxy屬性為True,這個設置之后連接不上網絡了,我去,調試ssl錯誤。有人說ssl錯誤的原因是要給瀏覽器安裝信任證書,我去,越來越玄學。
我又搗鼓信任證書,結果還是不管用,我直接跑到插件GIT的開源里面看,發現他們說selenium沒有安裝信任證書的api,所以必須手動安裝。【吃瓜中】
最后終於在國外的GOOGLE Group 關於這個話題的討論中得到了一些有用的信息:Here 【外國樓主也在糾結為啥獲取不了https的response】【吃瓜中】
最后問題解決了,他們好像也不太清楚,到底為啥,反正就是版本問題了,我一看我的BrowserMob proxy插件版本2.0 bate版本,我覺得不能啊,我這可是從官網下的最新版本。
可是為啥他們用的版本比我的還高。我日,原來官方下載的時候自己給我下了這個低版本的。我去【想吐槽】
最后的最后,我吧新的插件下載了出來,訪問了百度。 終···············於獲得了28條entries,哈哈·······················
最讓我傻眼的來了,我發現返回的27條里面只有請求,沒有response的content。。哈哈返回的json沒有。。。。。。。。。。。。。。
人傻了,別搞好吧,都到最后了,讓我弄完吧,氣死我了,只要request中url的一些類型信息的話2行JS就搞定了好不
最后更可怕的來了,這個問題很快搜索到了,發現需要開啟一個屬性capturecontent,例子他們都是java和python,C#找不到這個屬性,這個是最絕望的,憑啥差別對待啊~~~~~~~~
在我快絕望的時候,看到了一個外國友人也有同樣的提問,問的人真就只有一兩個。。。。這里:Here 啟發了我,去修改類庫的內容,這個大哥說了最后這配置都是要形成一個url字符串然后傳給插件的,所以
我這個時候只能自己構造一串字符,最后真的成功了,哈哈~~~~~~~~~~~完美!
最后美滋滋的獲取到了response返回的Json,可以為所欲為了~~~哈哈
EnD
在這里就不太多寫了,額,其實已經不少了,為什么我這么多廢話呢?因為我在找資料的的時候真的太累了,有太多要吐槽的東西了,
為了這玩意我,還把python下載下來,學了一上午python然后調用插件的時候出現一樣的錯誤,不可以范圍內https的網站。。哎我都在想要不要混合編程算了,因為.net真的傷不起,后娘養的
為了一上午python發現,Visual Studio果然是世界上最好用的編輯器,其他的真心u用不慣.現在我發現好多東西關於.net的教程都好少,官方網站都沒有。net的用力有的都是java和python。。。
要不要學一學python,因為我發現python上手也太快了吧。。
以上都是我吐槽的點:
最后代碼奉上,直接跑起來,那這么多廢話,大家的事件都挺寶貴的是吧。
Git:Click