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/VseYoung/p/8686383.html

http://www.w3school.com.cn/xpath/xpath_functions.asp

上面代码中使用的HTML文档测试例子

C#使用HtmlAgilityPack快速爬虫的更多相关文章

  1. .net 使用HtmlAgilityPack做爬虫

    HtmlAgilityPack官网:https://html-agility-pack.net/?z=codeplex .net中使用HtmlAgilityPack做爬虫步骤: 1.在nuget中安装 ...

  2. C#+HtmlAgilityPack+Dapper走一波爬虫

    最近因为公司业务需要,又有机会撸winform了,这次的需求是因为公司有项目申报的这块业务,项目申报前期需要关注政府发布的相关动态信息,政府部门网站过多,人工需要一个一个网站去浏览和查阅,有时候还会遗 ...

  3. 爬虫技术 -- 进阶学习(十)网易新闻页面信息抓取(htmlagilitypack搭配scrapysharp)

    最近在弄网页爬虫这方面的,上网看到关于htmlagilitypack搭配scrapysharp的文章,于是决定试一试~ 于是到https://www.nuget.org/packages/Scrapy ...

  4. 快速、直接的XSS漏洞检测爬虫 – XSScrapy

    XSScrapy是一个快速.直接的XSS漏洞检测爬虫,你只需要一个URL,它便可以帮助你发现XSS跨站脚本漏洞. XSScrapy的XSS漏洞攻击测试向量将会覆盖 Http头中的Referer字段 U ...

  5. 如何快速赚钱:Python爬虫

    Python爬虫和毛爷爷的关系:Python是最简单最流行的开发语言,毛爷爷是最招人喜欢的人民币.如果你学会了Python爬虫,就可以挣更多的毛爷爷. 大家发现没有,实际上Python早已经火起来了, ...

  6. ASP.NET网络爬虫小研究 HtmlAgilityPack基础,爬取数据保存在数据库中再显示再自己的网页中

    1.什么是网络爬虫 关于爬虫百度百科这样定义的:网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本.另外一些 ...

  7. C# HtmlAgilityPack 爬虫框架

    这两天公司不是很忙,在某个网站看见别人爬虫出来的数据感觉很有兴趣就玩了一把,网上找了一个 HtmlAgilityPack 爬虫框架,用了一下感觉很不错 首先从Nuget上面更新Package:Html ...

  8. 全面超越Appium,使用Airtest超快速开发App爬虫

    想开发网页爬虫,发现被反爬了?想对 App 抓包,发现数据被加密了?不要担心,使用 Airtest 开发 App 爬虫,只要人眼能看到,你就能抓到,最快只需要2分钟,兼容 Unity3D.Cocos2 ...

  9. C# 网络爬虫利器之Html Agility Pack如何快速实现解析Html

    简介 现在越来越多的场景需要我们使用网络爬虫,抓取相关数据便于我们使用,今天我们要讲的主角Html Agility Pack是在爬取的过程当中,能够高效的解析我们抓取到的html数据. 优势 在.NE ...

随机推荐

  1. Python 中的 -> 是什么意思

    函数标注通常用于 类型提示:例如以下函数预期接受两个 int 参数并预期返回一个 int 值:```def sum_two_numbers(a: int, b: int) -> int:retu ...

  2. lua 求table长度和判断空

    local table_a = {} 判断一:(错误方法)     if table_a == {} then         --你会发现你怎么也进不来 条件判断始终返回false,为什么会这样呢? ...

  3. Tomcat监听shutdown释放数据库连接池

    开发时因为更新代码,频繁重启Tomcat,遇到一个问题:在执行shutdown脚本后,Tomcat进程没有关闭依然存在(但是HTTP服务已经停止),需要手动执行kill命令才行.查了一些资料结合经验, ...

  4. Visual studio 正在从以下位置加载符号:Microsoft符号服务器 尝试取消禁用后续符号加载

    正在从以下位置加载符号:Microsoft符号服务器   尝试取消禁用后续符号加载 进入VS---工具---选项----调试----符号,看右边有个“Microsoft符号服务器”,将前面的勾去掉,( ...

  5. jvm 指令重排

    引言:在Java中看似顺序的代码在JVM中,可能会出现编译器或者CPU对这些操作指令进行了重新排序:在特定情况下,指令重排将会给我们的程序带来不确定的结果..... 1.  什么是指令重排? 在计算机 ...

  6. 123457123456#0#---com.threeapp.ErTongShuXueKoSuan01----儿童宝宝数学口算01

    com.threeapp.ErTongShuXueKoSuan01----儿童宝宝数学口算01

  7. python之socket编程(一)

    socket之前我们先来熟悉回忆几个知识点. OSI七层模型 OSI(Open System Interconnection)参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标 ...

  8. js面向对象写法及栈的实现

    function Stack() { this.dataStore = []; this.top = 0; //指向栈顶的位置 this.push = push; this.pop = pop; th ...

  9. iOS-NSURLConnection异步发送 HTTP请求

    - (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar { NSString *new = [searchBar.text stri ...

  10. win10 1803 频繁死机,卡死不动

    摘自微软官网的解决办法,我的目测好像是可以了. 小娜搜索框输入“PowerShell”选择在管理员命令提示符下键入以下命令: Dism /Online /Cleanup-Image /ScanHeal ...