1、webkit的使用
2、HtmlAgilityPack的使用
1、webkit的使用
虽然可直接使用自带的webbrowser,但IE内核用着实在蛋疼,改用webkit内核。
1)下载WebKit的项目bin,网址如下:https://sourceforge.net/projects/webkitdotnet/files/WebKit%20.NET%200.x/0.5/WebKit.NET-0.5-bin-cairo.zip/download。
2)下载解压后的目录结构如下:
image3)将bin文件夹下的所有(没错!是所有文件复制),并粘贴到项目文件夹下,目标目录是:项目名/bin/Debug/
image4)导入Webkitbrowser的dll到你的项目中。在VS2015的操作如下(其他的类推):
在Solution Explorer下,选中你的项目名,然后右键,选择Add,然后选择Reference,如下图:
5)在弹出的对话框里。选择Browse -> Browse...,然后选择你的:项目名/bin/Debug下之前粘贴的WebKitBrowser.dll导入,结果如下图:
image6)编码
WebKit.WebKitBrowser browser
private void Form1_Load(object sender, EventArgs e)
{
browser = new WebKitBrowser();
browser.Dock = DockStyle.Fill;
this.Controls.Add(browser);
browser.Navigate("http://www.baidu.com");
browser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(go);
}
// 网页加载完成后执行该函数
private void go(object sender, EventArgs e)
{
...
}
public void login(string name)
{
WebKit.DOM.Document doc = browser.Document;
// 往xxid的元素填入name
WebKit.DOM.Element ele = doc.GetElementById("xxid");
ele.SetAttribute("Value", name);
// 调用函数名为funcName的脚本
browser.Document.InvokeScriptMethod("funcName");
}
2、HtmlAgilityPack的使用
1)安装
离线下载地址
选择最新版本后点击 Download package 1.8.11 (1.2 MB)
image.png可将下载后的后缀nupkg改为rar再解压,选择开发的.net版本下的HtmlAgilityPack.dll
image.png
再加入引用
2)使用
可通过string初始化
string html = WebRequestPost(url);
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(html);
通过加载文件初始化
string path= @"D:\ABC.html";
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.LoadHtml(path, Encoding.UTF8);
其他XPath语法这里不做介绍
注意:
1、如果需要在获取的HtmlNode中进行操作,需要重新生成HtmlNode才能取到对应节点的信息,否则取到的一直都是第一个
2、生成的HtmlNode下只能有1个根节点,尝试使用allDivs[i].InnerHtml
或allDivs[i].OuterHtml
HtmlNodeCollection allDivs = doc.DocumentNode.SelectNodes(xpathDiv);
for (int i = 0; i < allDivs.Count; i++)
{
HtmlNode node = HtmlNode.CreateNode(allDivs[i].InnerHtml);
}
网友评论