博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#使用HtmlAgilityPack快速爬虫
阅读量:6152 次
发布时间:2019-06-21

本文共 924 字,大约阅读时间需要 3 分钟。

HtmlAgilityPack真是一把网抓利器,可以迅速地从网页抓到想要的文本或数据,使用起来十分方便,引用时在NuGet安装添加并在头部引用using HtmlAgilityPack;即可。

针对网址直接使用Load方法:

HtmlWeb webc = new HtmlWeb();HtmlDocument htmlDoc = webc.Load(@"https://doc。。。");HtmlNodeCollection hc = htmlDoc.DocumentNode.SelectNodes("//td[contains(normalize-space(text()),'Investment Advisor:')]/../../../../preceding-sibling::div[position()<=3]");

如果需要读取的html文档是本地的,可以先获取数据流,再使用LoadHtml方法:

FileStream fs = new FileStream(@"C:\Users\jlin10\Desktop\test.html", FileMode.OpenOrCreate, FileAccess.Read);StreamReader sr = new StreamReader(fs, Encoding.Default);string htmlstr = sr.ReadToEnd();sr.Close();fs.Close();HtmlAgilityPack.HtmlDocument htmlDoc = new HtmlAgilityPack.HtmlDocument();htmlDoc.LoadHtml(htmlstr);

抓出来之后就可以对hc循环取innertext属性得到结果,不过HtmlAgilityPack的selectnode(s)方法只支持xpath,不支持jsoup,所以要准确地抓出想要的东西就得看xpath写得好不好了,这里推荐下使用xpath常用的两个网址:

上面代码中使用的

 

转载于:https://www.cnblogs.com/JTCLASSROOM/p/10969673.html

你可能感兴趣的文章
scanf
查看>>
Socket编程注意接收缓冲区大小
查看>>
SpringMVC初写(五)拦截器
查看>>
检测oracle数据库坏块的方法
查看>>
SQL server 安装教程
查看>>
Linux下ftp和ssh详解
查看>>
跨站脚本功攻击,xss,一个简单的例子让你知道什么是xss攻击
查看>>
js时间和时间戳之间如何转换(汇总)
查看>>
js插件---图片懒加载echo.js结合 Amaze UI ScrollSpy 使用
查看>>
java中string和int的相互转换
查看>>
P1666 前缀单词
查看>>
HTML.2文本
查看>>
Ubuntu unity安装Indicator-Multiload
查看>>
解决Eclipse中新建jsp文件ISO8859-1 编码问题
查看>>
7.对象创建型模式-总结
查看>>
1、块:ion-item
查看>>
【论文阅读】Classification of breast cancer histology images using transfer learning
查看>>
移动端处理图片懒加载
查看>>
jQuery.on() 函数详解
查看>>
谈缓存和Redis
查看>>