第二个就是浏览器组件,可以拖一个到Form中进行配置。
具体可配置项比较多,可以参考GitHub中相关的配置文档:https://github.com/cefsharp/CefSharp。
在GitHub库中,也提供了相应的Example,如果想快速学习一下,这是非常好的例子。
访问一下CSDN,大概如下图:
2. 功能体验
在Chrome浏览器中,可以通过安装扩展插件进行一些“特殊操作”。比如CSDN的浏览器插件就很强大,可以参考我的另一篇文章:油#猴是什么猴?又一门新的编程语言?卷不动了呀。
浏览器插件都这么强大了,直接使用Chromium则能获得更大的主动权。
2.1 DevTools
要处理网页,怎么能少了DevTools,平时做前端开发,F12键肯定不少按。在这里也依然方便。在上图的地址栏中可以看到我自定义了三个按钮,其中一个就是DevTools,按钮对应的代码也很简单:
browser.ShowDevTools();
2.2 执行Js语句
来个最简单的例子:
browser.ExecuteScriptAsync("alert('sdsdd')");
2.3 模拟按键
有时候通过Js模拟输入、点击按钮等操作比较复杂,因为你不知道实际在页面中输入的时候,页面背地里又有什么操作,所以如果简单的给字段赋值可能是没用的。那么怎么模拟键盘输入呢?
比如想输入这样一句话:“没事看看CSDN”
string str = "没事看看CSDN"; foreach (char item in str) { browser.GetBrowserHost().SendKeyEvent((int)258u, (int)item, 0); }
这些都是基础功能,通过CefSharp,你可以控制请求数据,修改响应结果,发挥你的想象,你还想干什么。下面通过一个简单例子看一下。
3. 统计CSDN社区的打卡记录
需求分析:每一篇都有如下图这样的几页打卡记录
而每个月都有差不多30篇这样的文章,如何快速的统计出来呢?
思路就是:
- 读取每一篇打卡贴的链接
- 逐一打卡每一篇打卡贴
- 获取打卡贴第一页的打卡记录
- 逐一翻到下一页,获取各页的打卡记录