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

原文地址:https://www.cnblogs.com/jy8888/p/12106168.html

时间: 2024-08-12 16:44:14

C#Winform下使用WebKit、Geckofx、CefSharp心得的相关文章

winform下通过webclient使用非流方式上传(post)数据和文件

这两天因为工作的需要,需要做一个winform上传数据到服务器端的程序.当时第一个想法是通过webservice的方式来实现,后来觉得麻 烦,想偷懒就没有用这样的方式,http的post方式变成了第一选择.因为以前用的都是httpwebrequest之类的东西进行post提 交,winform下面还真的是第一次,不过很快就在网上找到了webclient这个类,接下来开始实现功能,话说webclient用起来还真的很简 单,一个头信息的声明,然后是URL,最后是post的数据,就完事了.正在高兴的

一个Winform下DataGridView控件外观的自定义类

一.关于起因 最近非常频繁的使用DataGridView控件,VS提供的Winform下DataGridView的默认样式非常难看.如果做美化处理的话,需要调整的地方非常多,且该控件的很多设置属性非常的晦涩,不是很人性化.每次进行设置都煞费脑筋,并且需要设置的DataGridView控件又比较多,如果手工一个一个调整非常麻烦.如果在每个窗体里逐个一行一行的用代码来设置,会造成代码很凌乱.琐碎,因此我对DataGridView格式设置的常用项封装到一个Helper类,通过这个帮助类可以一步到位完成

分享在winform下实现模块化插件编程

其实很早之前我就已经了解了在winform下实现插件编程,原理很简单,主要实现思路就是:先定一个插件接口作为插件样式及功能的约定,然后具体的插件就去实现这个插件接口,最后宿主(应用程序本身)就利用反射动态获取实现了插件接口的类型作为合法的插件,从而完成动态加载及宿主与插件之间的互动.因为之前一段时间一直搞B/S架构开发没有时间去实践,而恰好现在公司领导要求我对我公司原有的ERP系统架构进行重整,我们的ERP系统采用的基于分布式的三层架构,核心业务逻辑放在服务端,展示层与业务层之间采用基于WEB服

Ubuntu 下 samba的安装(个人心得)

今天想为了是编程简易点就尝试了装了下samba看了很多的帖子,最终找到了一条适合我的道路来实现这个功能.我的系统是ubuntu 12.04 首先,先安装apt-get install samba 这个软件 在指定地点创建share文件(文件名自己写,代号A) 将配子文件备份一遍是永恒不变的真理(以防改错,可以恢复) cp /etc/samba/smb.conf /etc/samba/smb.conf_backup 打开配置文件 vim /etc/samba/smb.conf 通过   /secu

winform下 PictureBox 显示网络图片

Image pic = new Image.FromStream(WebRequest.Create("http://x.com/x.jpg").GetResponse().GetResponseStream()); picturebox1.Image = pic 对读取错误的处理没有加 winform下 PictureBox 显示网络图片,布布扣,bubuko.com

(转)winform下TCP通信的简单应用

本文转载自:http://blog.csdn.net/wanlong360599336/article/details/7557064 先看效果图: TCP比较繁琐的就是三次握手定理,每次再发送数据前都要先建立连接确认. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; us

(转)winform下UPD通信的简单应用

本文转载自:http://blog.csdn.net/wanlong360599336/article/details/7557046 先看效果图: 使用UDP的好处就是不需要三次握手,但是缺点就是存在安全隐患. QQ就是利用UDP来传输数据的. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using Sy

winform下mapxtreme2008 v7.0 生成release版提示找不到dll问题

在winform下基于mapxtreme2008 v7.0 生成了一个地图软件,用debug方式运行无误,但改为release版时提示缺少一大堆dll,如: 无法从C:\Program Files (x86)\Common Files\MapInfo\MapXtreme\7.0.0下复制AllType.DLL 等 经搜素,在C:/Windows/assembly/GAC_32/MapInfo.CoreEngine.Wrapper/7.0.0.220__93e298a0f6b95eb1/下包含所有

Mac OS X 下编译webkit全过程

系统信息:Mac OS 10.9.4 环境:Xcode 5.1 请给予足够的耐心,等待源码下载.排除路径问题.编译等一系列漫长的时间. 下载源码: 以下下载地址均来自:webkit官方网站 www. webkit.org 1. 你可以去http://nightly.webkit.org/下载source文件 (此时名为WebKit r172372,约35.6M,随更新可能会有所变化) 2. 你可以在浏览器中打开以网址即可开始下载源码压缩包 (此时为1G左右,好像是多了一些debug的文件) ht