C#解析HTML利器-Html Agility Pack
今天刚开始做毕设....好吧,的确有点晚。我的毕设设计需要爬取豆瓣的电影推荐,于是就需要解析爬取下来的html,之前用Python玩过解析,但目前我使用的是C#,我觉得C#不比python差,有微软大大在,这个不需要担心,主要还是生态问题。查了下资料,发现Html Agility Pack是比较好的,当然还有其他的,我就不说了,主要使用它做的。
官网地址(可以自己去下载dll):
http://html-agility-pack.net/select-nodes
代码设计:
static void complete(object o, AsyncCompletedEventArgs e)
{
// 开始解析html
var doc = new HtmlDocument();
doc.Load( "E:\程序文件\C#程序代码\Validate\ConsoleApplication1\movie.txt", Encoding.UTF8);
List<string> movie = new List<string>(); //
HtmlNodeCollection nodeCollection = doc.DocumentNode.SelectNodes("//ul/li[ class=\"title\"]");
foreach (HtmlNode n in nodeCollection)
{
Console.WriteLine(n.InnerHtml.Trim());
movie.Add(n.InnerText.Trim());
} //获取豆瓣最受欢迎影评
HtmlNodeCollection nodeCollection1 = doc.DocumentNode.SelectNodes("//div[ class=\"review-bd\"]/h3");
foreach (HtmlNode n in nodeCollection1)
{
Console.WriteLine(n.InnerHtml.Trim());
movie.Add(n.InnerText.Trim());
} foreach(var m in movie)
{
Console.WriteLine(m);
} File.Delete( "E:\程序文件\C#程序代码\Validate\ConsoleApplication1\movie.txt");
} static void Main(string[] args)
{
Console.BufferHeight = ;
Console.BufferWidth = ;
string moviePath = "E:\程序文件\C#程序代码\Validate\ConsoleApplication1\movie.txt";
WebClient wc = new WebClient();
wc.UseDefaultCredentials = true;
wc.DownloadFileAsync(new Uri("https://movie.douban.com/"), moviePath);
wc.DownloadFileCompleted += new AsyncCompletedEventHandler(complete); Console.Read();
}
对于WebClient文档,请看https://msdn.microsoft.com/zh-cn/library/system.net.webclient(v=vs.110).aspx
不得不说,微软官网的系列文档真是良心!以前也是听人说过,微软的解决方案以及文档很全,但是一直查资料都是直接百度,现在换了一种,直接上微软官网查....真是良心!而且例子是比较经典的!
C#解析HTML利器-Html Agility Pack的更多相关文章
- C#解析HTML神器 Html Agility Pack
曾经,我傻乎乎的用正则表达式成功的解析了学校的新闻网.教务管理系统.图书馆管理系统中我想要的所有的内容.那时候废了好大的劲写那正则啊,而且最后还是各种不给力,经常会有意想不到的bug出现,最后经过无数 ...
- html解析器:Html Agility Pack
去掉注释.样式.和js代码: foreach(var script in doc.DocumentNode.Descendants("script").ToArray()) scr ...
- Html Agility Pack解析Html(C#爬虫利器)
有个需求要写网络爬虫,以前接触过一个叫Html Agility Pack这个解析html的库,这次又要用到,然而发现以前咋用的已经不记得了,现在从头开始记录一下使用过程. Html Agility P ...
- Html Agility Pack 解析Html
Hello 好久不见 哈哈,今天给大家分享一个解析Html的类库 Html Agility Pack.这个适用于想获取某网页里面的部分内容.今天就拿我的Csdn的博客列表来举例. 打开页面 用Fir ...
- 开源项目Html Agility Pack实现快速解析Html
这是个很好的的东西,以前做Html解析都是在用htmlparser,用的虽然顺手,但解析速度较慢,碰巧今天找到了这个,就拿过来试,一切出乎意料,非常爽,推荐给各位使用. 下面是一些简单的使用技巧,希望 ...
- Html Agility Pack解析HTML页
文章来源:Html Agility Pack解析HTML页 现在,在不少应用场合中都希望做到数据抓取,特别是基于网页部分的抓取.其实网页抓取的过程实际上是通过编程的方法,去抓取不同网站网页后,再进行分 ...
- 强大而灵活的的Html解析器——Html Agility Pack
一.概述 Html Agility Pack 简称HAP,是一个强大而灵活的解析Html DOM的.Net类库. 二.官方链接 官网:http://html-agility-pack.net/ NuG ...
- C# 网络爬虫利器之Html Agility Pack如何快速实现解析Html
简介 现在越来越多的场景需要我们使用网络爬虫,抓取相关数据便于我们使用,今天我们要讲的主角Html Agility Pack是在爬取的过程当中,能够高效的解析我们抓取到的html数据. 优势 在.NE ...
- 使用Html Agility Pack快速解析Html内容
Html Agility Pack 是一个开源的.NET 方案HTML解析器. 开源地址:https://github.com/zzzprojects/html-agility-pack 用法:vs上 ...
随机推荐
- 百度地图SDK3.4的使用
使用过百度地图的开发者应该都知道原始百度地图的开发的基本流程,但是随着百度地图的更新,百度地图的api有了翻天覆地的变化,最新版本的sdk为v3.4 2015年4月14日上线,优化了许多接口的设计,简 ...
- UNIX网络编程——epoll 系列函数简介、与select、poll 的区别
前面博客<<UNIX环境高级编程--epoll函数使用详解>>有关于epoll函数的讲解. 一.epoll 系列函数简介 #include <sys/epoll.h> ...
- Microsoft Dynamics CRM2011 更换Logo
之前操作过但没做过记录,这里记录下以防以后有需要时记不起来还有迹可循 IE收藏栏的图标,在网站根目录下的的/favicon.ico CRM网页中的Logo,替换/_imgs/crmmastheadlo ...
- tomcat中Servlet的工作机制
在研究Servlet在tomcat中的工作机制前必须先看看Servlet规范的一些重要的相关规定,规范提供了一个Servlet接口,接口中包含的重要方法是init.service.destroy等方法 ...
- iOS开发中 常用枚举和常用的一些运算符(易错总结)
1.色值的随机值: #define kColorValue arc4random_uniform(256)/255.0 // arc4random_uniform(256)/255.0; 求出0.0~ ...
- Socket编程实践(10) --select的限制与poll的使用
select的限制 用select实现的并发服务器,能达到的并发数一般受两方面限制: 1)一个进程能打开的最大文件描述符限制.这可以通过调整内核参数.可以通过ulimit -n(number)来调整或 ...
- Linux的启动流程(一)
· 启动第一步--加载BIOS 当你打开计算机电源,计算机会首先加载BIOS信息,BIOS信息是如此的重要,以至于计算机必须在最开始就找到它.这是因为BIOS中包含了CPU的相关信息.设备启动顺序信息 ...
- IT职场: 选择外企利与弊
前几天有个同学打电话问我选择国内企业与外企的利弊,很可笑的是他是学机械的:既然和我完全不在一个行业,因此我只是说了我们IT外企的利与弊,毕竟隔行如隔山. 首先简单自我介绍一下,我所在的公司是美资500 ...
- C++实现单链表
之前一直没怎么在意C++中的链表,但是突然一下子让自己写,就老是出错.没办法,决定好好恶补一下该方面的知识,也为今后的数据结构大下个良好的基础,于是我总结出以下几点,有些地方可能不正确,还望大家不吝赐 ...
- 环境连接报错(最大连接数超过) APP-FND-01516
数据库用户登录服务器,sqlplu 解决办法: 先把界面上要保存的操作保存好 应用用户登录,切换到ora用户 杀掉进程 ps -fu ora | grep LOCAL=NO|grep -v grep| ...