HtmlAgilityPack是.net下的一个HTML解析类库。支持用XPath来解析HTML。简单的来说,在页面上查询元素速度更快,更准。

      HtmlWeb web = new HtmlWeb();//创建Web请求HtmlAgilityPack.HtmlDocument doc = web.Load(m);//加载页面的链接var json = Common.Http_Get(m);//获取网页源代码//获取某个节点的集合,这里获取出现 p 标签 的集合            var nodes = doc.DocumentNode.SelectNodes("//p");//遍历集合                                 foreach (HtmlNode node in nodes){try{//获取其中一个出现p标签的HTML源码HtmlNode thumbnail = HtmlNode.CreateNode(node.OuterHtml);//获取p标签文本内容var thumbnailstr = thumbnail.InnerText.Trim();// 获取img目录下的img标签中的图片链接var img_node = thumbnail.SelectSingleNode("//img");var img = img_node.Attributes["src"].Value;//获取a目录下a标签class属性为ql-link 的节点var link_node = thumbnail.SelectSingleNode("//a[@class='ql-link']");var link = link_node.Attributes["href"].Value;}catch{}}

注意:记得XPath表达式要写对,否则会报错或查询不到某元素
/ {从根节点选取}
// {选择元素后代元素,必须在后面跟上nodeName}
. {选取当前节点}
… {选取当前节点的父节点}
@ {选取属性节点(@是attribute的缩写)}
/root/child[3] {选取root元素的第三个child子元素,注意,这和数组下标不一样,从1开始计数}
//child[@attr] {选取所有具有属性attr的child元素}
body/p[position()=4] {这个XPath表达式将选取body子元素中第4个p元素,注意这里从1开始计数}
//div[@class=‘ql-link’] {获取某个class属性为ql-link 的div 层 }

C# HtmlAgilityPack 页面结构解析相关推荐

  1. oracle oaf结构,解析OAF页面元数据结构((转自Oracle 探索者)

    在 Oracle E-Business Suite的二次开发中,基于OAF的开发在JDeveloper OA Extension中进行,完成后使用XMLImporter工具导入页面定义到数据库中, 之 ...

  2. web前段学习day_01:HTML(学习如何搭建页面结构和内容):文本标签、列表标签、图片标签、超链接、表格、表单表单、分区标签、实体引用

    学习如何构造页面结构和内容 安装HBuilderX 一.HTML 创建第一个HTML页面 写完html后如何测试 写在body中的常见标签有哪些? 注释快捷键 Ctrl+Shift+/ 1.文本相关标 ...

  3. java解析网页全过程_Web页面的解析过程

    博文转自:http://hi.baidu.com/moniteryao/item/e851425177262ba8adc8577f 页面的解析过程,这里说的过程不是我们常说的ASP.NET页面的生命周 ...

  4. docker存储结构解析

    2019独角兽企业重金招聘Python工程师标准>>> docker存储结构解析 博客分类: docker 由于aufs并未并入内核,故而目前只有Ubuntu系统上能够使用aufs作 ...

  5. 《ASP.NET Core In Action》读书笔记系列五 ASP.NET Core 解决方案结构解析1

    <ASP.NET Core In Action>读书笔记系列五 ASP.NET Core 解决方案结构解析1 参考文章: (1)<ASP.NET Core In Action> ...

  6. 网页优化中,网站页面结构该注意什么?

    网站页面结构即网页内容布局,网站页面结构的创建就是要对网页的内容进行规划布局,合理的网站页面结构总是很受搜索引擎蜘蛛的欢迎,网站页面结构也能直接影响页面的用户体验及相关性,还能影响网站整体结构及页面被 ...

  7. 基于easyui开发Web版Activiti流程定制器详解(四)——页面结构(下)

    题外话: 这两天周末在家陪老婆和儿子没上来更新请大家见谅!上一篇介绍了调色板和画布区的页面结构,这篇讲解一下属性区的结构也是定制器最重要的一个页面. 属性区整体页面结构如图:  在这个区域可以定义工作 ...

  8. 移动Web单页应用开发实践——页面结构化

    1. 前言 在开发面向现代智能手机的移动Web应用的时候,无法避免一个事实,就是需要开发单页应用(Single Page WebApp).对于不同的系统需求,单页应用的粒度会不同,可能是整个系统都使用 ...

  9. jQuery Mobile 笔记(1)- jQuery Mobile页面结构

    jQuery Mobile页面解构 jQuery Mobile 的"页面"结构不同于传统的html页面,这样做是为了优化single page application的用户体验. ...

最新文章

  1. Typora添加右键新建Markdown文件
  2. Android--SensorEventListener和AudioManager实现根据条件转换手机震动和响铃
  3. 【转】MFC下用ADO连接SQL SERVER,保存图片,BLOB
  4. Implementing Synchronization Operations
  5. postgresql,pgadmin4安装后出错,界面只有文字
  6. redshift 数据仓库_您如何使用Amazon Redshift Spectrum访问“暗数据”
  7. 【多线程】什么是线程安全?
  8. 长春java培训老师
  9. HDU1285 确定比赛名次【拓扑排序】
  10. JSP中9个隐含对象
  11. 科普 - CAMDS
  12. EAUML日拱一卒-活动图::14.2 Behavior StateMachines (10)
  13. jetson nano 连接wifi
  14. 《17.Deep Pyramidal Residual Networks》
  15. postgres汉字转换为拼音
  16. 机械师创物者 Mini-3765H 评测
  17. 狄拉克函数- dirac 分布
  18. python数据分析优势-用Python做数据分析有哪些优势?
  19. Mac Terminal 终端:入门指南及进阶技巧
  20. 电脑开不了机提示checking media的解决方法

热门文章

  1. 墨者学院-SQL注入漏洞测试(布尔盲注)
  2. LightOJ 1079 Just another Robbery【概率DP】
  3. HDU 5172 GTY's gay friends HASH随机算法
  4. android搜索框实现
  5. 向楼下的门诊店的护士敬礼
  6. 2. ORB-SLAM3_V1 源码阅读笔记 -Examples -ros_stereo_inertial.cc
  7. 让人感慨的21个故事
  8. Greenplum中的vacuum
  9. 云计算的云指的是什么?通俗解释云计算能做什么
  10. PR如何打开MKV文件?MKV文件如何转为mp4,以及MP4如何被imageJ食用?