Hero is coming back

风吹呀吹

风会指引你前进的方向

BrowserMob proxy

简述:获取浏览器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上手也太快了吧。。

以上都是我吐槽的点:

最后代码奉上,直接跑起来,那这么多废话,大家的事件都挺宝贵的是吧。

Github:Click

重点:直接从github上拿源码运行就可以了,需要查看自己chrome的版本(代码中使用81版本,其他们版本需要改下chromedriver的版本),以及安装javajdk的版本,需要1.8.0版本的才可以

可以获取Https和Http的返回

 

posted @ 2020-05-03 16:03  风吹呀吹  阅读(5721)  评论(4编辑  收藏  举报