C#Winform下使用WebKit、Geckofx、CefSharp心得

       最近公司需要从一个电商后台获取数据,无奈这项艰巨的任务交给了我,我查看了该站所有API都找不到相关的方法,找客服也无济于事,所以只有自己爬数据了。试了下python确实可以抓取cookie,无奈自己python新手。所以还是从最熟悉的winform入手。然后遇到了大坑,用遍这么多浏览器都无法抓到所有的cookies。

浏览器内核兼容获取cookies
VS自带webBrowser IE 最差 不全
WebKit Firefox 一般 不全
Geckofx Firefox 不全
CefSharp

chrome(谷歌)

建议新入坑的码农,只要是项目里需要用到浏览器的强烈建议用CefSharp,而且对js支持也不错,直接可以执行js代码。

//设置用户名
chromeBrowser.ExecuteScriptAsync("$('#userPhone').val('" + mobile + "')");
//设置密码
chromeBrowser.ExecuteScriptAsync("$('#userPassword').val('" + pwd + "')");
//验证码焦点
chromeBrowser.ExecuteScriptAsync("$('#captcha').focus()");

登录成功后就可以抓取cookies

var cookieManager = chromeBrowser.GetCookieManager();
cookieManager.VisitAllCookies(new CookieVisitor());

原先想上传视频,无奈太麻烦,就发个图吧

有了cookies之后,那不是可以为所欲为了。检测他们获取数据的post地址,携带需要的cookies直接去获取,返回的也是json。简直不要太舒服,就是登录需要一个验证码需要人工填写。

技术支持QQ:1124391467

posted @ 2019-12-27 10:57  鲸鱼软件开发  阅读(4510)  评论(2编辑  收藏  举报