简介

本文介绍net处理html页面元素的工具类(HtmlAgilityPack.dll)的使用,用途比较多的应该是例如采集类的功能,采集到的html字符串要怎样处理是一个头痛的问题,如果是截取就太麻烦了而且容易出错。所有就用到本文的第三方dll来处理了。

下载

下载地址:http://htmlagilitypack.codeplex.com/

点击“download”按钮直接下载。

使用

1.添加HtmlAgilityPack.dll引用(引用类using HtmlAgilityPack;)。

2.简单根据html中input的id获取value代码如下:

// 模拟用户请求
WebClient webClient = new WebClient();
webClient.Encoding = System.Text.Encoding.UTF8;
string htmlContext = webClient.DownloadString("http://stone_w.cnblogs.com/");
webClient.Credentials = CredentialCache.DefaultCredentials; // 添加授权证书
webClient.Headers.Add("User-Agent", "Microsoft Internet Explorer");
webClient.Headers.Add("Host", "www.cnblogs.com");// 获取html元素(htmlContext为html页面字符串)
HtmlDocument htmlDoc = new HtmlDocument();
htmlDoc.LoadHtml(htmlContext);  // 加载html页面
HtmlNode navNode = htmlDoc.GetElementbyId("id名称");
Response.Write(navNode.Attributes["value"].Value);

总结

HtmlAgilityPack可以根据id查询value,还可以获取单个元素节点,都是HtmlDocument类的内置方法,大家可以试着练练。谢谢完~

获取超级链接

HtmlWeb webClient = new HtmlWeb();
HtmlDocument doc = webClient.Load("http://xxx");HtmlNodeCollection hrefList = doc.DocumentNode.SelectNodes(".//a[@href]");if (hrefList != null)
{foreach (HtmlNode href in hrefList){HtmlAttribute att = href.Attributes["href"];doSomething(att.Value);}}

搜集到的第三个

这里推荐一个不错的DLL 叫HtmlAgilityPack.dll,它不基于mshtml,轻松解析HTML代码,这对做采集软件来说是很不错的选择,使用非常简单:

--------------------------------------------------------------------------------

   Dim wc As WebClient = New WebClient
            Dim ms As MemoryStream = New MemoryStream(wc.DownloadData(url))
            '预读HTML
            Dim hdoc As HtmlDocument = New HtmlDocument
            hdoc.Load(ms, Encoding.UTF8)

'股票编号
            arr(0) = hdoc.DocumentNode.SelectSingleNode("/html[1]/body[1]/div[1]/div[1]/div[3]/div[2]/div[1]/div[1]").InnerText

--------------------------------------------------------------------------------

其中 /html[1]/body[1]/div[1]/div[1]/div[3]/div[2]/div[1]/div[1] 是你要采集的xPath,这个有点像DOMhtml,HtmlAgilityPack 也提供了相应的工具软件来获取这个值,但似乎开发者似乎不怎么了解winform,软件容易崩溃...

转载于:https://www.cnblogs.com/wangchuang/p/3566234.html

HtmlAgilityPack.dll的使用 获取HTMLid相关推荐

  1. HtmlAgilityPack.dll爬虫获取百度音乐批量下载地址(C#源码)

    关于分析的过程和思路参考原来的一篇文章 <HtmlAgilityPack 爬虫批量获取百度音乐下载地址一> http://blog.csdn.net/witch_soya/article/ ...

  2. Net处理html页面元素工具类(HtmlAgilityPack.dll)的使用

    简介 本文介绍net处理html页面元素的工具类(HtmlAgilityPack.dll)的使用,用途比较多的应该是例如采集类的功能,采集到的html字符串要怎样处理是一个头痛的问题,如果是截取就太麻 ...

  3. HtmlAgilityPack 爬虫批量获取百度音乐下载地址一

    2014年8月19日15:26:16 说明:  有些网友发私信或在资源下留言问现在为什么无法抓取百度音乐排行榜了,是不是源代码有问题或代码不全面. 首先感谢你的关注,其次想说这个小工具仅仅是通过抓取百 ...

  4. HtmlAgilityPack 总结(一)

    一个解析html的C#类库HtmlAgilityPack, HtmlAgilityPack是一个基于.Net的.第三方免费开源的微型类库,主要用于在服务器端解析html文档(在B/S结构的程序中客户端 ...

  5. [爬虫]通过url获取连接地址中的数据

    1. 要想获取指定连接的数据,那么就得使用HtmlDocument对象,要想使用HtmlDocument对象就必需引用using HtmlAgilityPack; 2. 详细步骤如下:     步骤一 ...

  6. .Net解析html文档类库HtmlAgilityPack完整使用说明

    在前几篇文章中([搜房网房产数据采集程序demo--GeckoWebBrowser实例] )都有提到一个解析html的C#类库HtmlAgilityPack, 今天终于有时间整理一下,并把Demo分享 ...

  7. C#将DLL嵌入到exe当中

    原文:C#将DLL嵌入到exe当中 一.将dll文件加入工程 1.找到dll文件 可以在项目的"引用"下找到dll,并且根据属性中的"路径"找到文件所在目录:也 ...

  8. HtmlAgilityPack

    一个解析html的C#类库HtmlAgilityPack, 今天终于有时间整理一下,并把Demo分享一下. HtmlAgilityPack是一个基于.Net的.第三方免费开源的微型类库,主要用于在服务 ...

  9. Silverlight 5 RC新特性探索系列:12.Silverlight 5 RC 窗口模式下访问自定义DLL和WIN32 API...

    在Silverlight 5 RC版本中针对访问权限进行了相应的提升,它的项目属性中新增了一个复选框"在浏览器内运行时需要提升的信任",如下图: 它将为在浏览器模式下运行的应用程序 ...

最新文章

  1. 第十六届全国大学生智能车比赛掠影
  2. 掌握测试驱动开发的3个关键因素(译)
  3. .NET Framework终于开源了!
  4. java异步执行任务
  5. zabbix—自动发现端口并监控
  6. linux 774是什么权限,Linux权限
  7. java.lang.ClassNotFoundException: org.apache.commons.codec.DecoderException
  8. Apache 及 Nginx 配置
  9. 【微服务】什么是SOA服务架构?
  10. LM74700-Q1
  11. mess组网 中继_还在用无线路由器中继?快来看乙辰科技全新更智能的无线Mesh组网...
  12. RHCE证书考试报名流程
  13. 大学英语综合教程二 Unit 4 课文内容英译中 中英翻译
  14. 学费不存管,韦博式“裸奔”几时休
  15. 各种“地”—— 各种“GND”
  16. bytebuffer获得byte[]的操作
  17. 大二期末作孽(SpringBoot+Vue前后端分离博客社区(重构White Hole))
  18. 身为土木牛马的我是如何成功提桶拿到互联网前端50w大厂offer的
  19. 【木棍问题——回溯与分支限界算法(使用C语言解决)】
  20. DVWA的部署和教程

热门文章

  1. 计算机网络基础高职pdf,高职《计算机网络基础》课程教学改革的思考.pdf
  2. 排序系统 c语言程序设计,c语言程序设计(排序算法).doc
  3. 运行php web文件路径,php的web路径获取
  4. element提交图片限制一张_element-ui上传图片限制图片比例
  5. vmx进程已提前退出_如何优雅地停止Java进程
  6. 5 thinkpad 黑将评测_ThinkPad L380视频评测:全能型商务助手
  7. c9500堆叠配置_用C ++堆叠
  8. Java Stream flatMap()
  9. Android MVP和Dagger2
  10. ROS的学习(八)ROS的服务