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