在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
菜鸟HtmlAgilityPack初体验。。。弱弱的代码。。。 Html Agility Pack是一个开源项目,为网页提供了标准的DOM API和XPath导航。使用WebBrowser和HttpWebRequest下载的网页可以用Html Agility Pack来解析。 HtmlAgilityPack的文档是CHM格式的,有时会无法正常阅读CHM格式的文件。如果是IE不能链接到您请求的网页或者打开后“页面无法显示”。请在要打开的CHM文件上右击属性,会在底下属性多了个“解除锁定”,单击后就可以正常显示了。 如果有需要下载,请点击HtmlAgilityPack.1.4.0下载,解压后找到HtmlAgilityPack.dll,把它添加到项目中。 HtmlAgilityPack.dll中的类都位于HtmlAgilityPack命名空间。 HtmlDocument表示一个完整的HTML文档。用Load方法加载网页。 下面进行HtmlAgilityPack初体验, 实现目标:,点击按钮后,根据给定的网址,打印出该页面的所有链接。简单代码如下: 1 using System; 2 using System.Collections.Generic; 3 using System.ComponentModel; 4 using System.Data; 5 using System.Drawing; 6 using System.Linq; 7 using System.Text; 8 using System.Windows.Forms; 9 using HtmlAgilityPack; 10 11 namespace HtmlAgilityPackDemo1 12 { 13 public partial class Form1 : Form 14 { 15 public Form1() 16 { 17 InitializeComponent(); 18 } 19 20 private void Form1_Load(object sender, EventArgs e) 21 { 22 23 } 24 25 private void button1_Click(object sender, EventArgs e) 26 { 27 HtmlWeb webClient = new HtmlWeb(); 28 HtmlAgilityPack.HtmlDocument doc = webClient.Load("http://www.cnblogs.com/lmei"); 29 30 HtmlNodeCollection hrefList = doc.DocumentNode.SelectNodes(".//a[@href]"); 31 32 if (hrefList != null) 33 { 34 foreach (HtmlNode href in hrefList) 35 { 36 HtmlAttribute att = href.Attributes["href"]; 37 Console.WriteLine(att.Value); 38 39 } 40 41 } 42 43 } 44 } 45 } 当上面第28行代码写成如下, HtmlDocument doc = webClient.Load("http://www.cnblogs.com/lmei"); 会出现错误提示,
于是修改如下, HtmlAgilityPack.HtmlDocument doc = webClient.Load("http://www.cnblogs.com/lmei");
接下来,看下控制台的输出,截图如下: 可见,网页上面的超链接都被打印出来了。。。 当然,如果想要抓取的是网页上面的正文,加载后可能出现乱码问题,则可以指定文件的编码: HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlAgilityPack.HtmlDocument();
|
请发表评论