今天刚开始做毕设....好吧,的确有点晚。我的毕设设计需要爬取豆瓣的电影推荐,于是就需要解析爬取下来的html,之前用Python玩过解析,但目前我使用的是C#,我觉得C#不比python差,有微软大大在,这个不需要担心,主要还是生态问题。查了下资料,发现Html Agility Pack是比较好的,当然还有其他的,我就不说了,主要使用它做的。

官网地址(可以自己去下载dll):

http://html-agility-pack.net/select-nodes

参考:Html Agility Pack基础类介绍及运用

代码设计:

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的更多相关文章

  1. C#解析HTML神器 Html Agility Pack

    曾经,我傻乎乎的用正则表达式成功的解析了学校的新闻网.教务管理系统.图书馆管理系统中我想要的所有的内容.那时候废了好大的劲写那正则啊,而且最后还是各种不给力,经常会有意想不到的bug出现,最后经过无数 ...

  2. html解析器:Html Agility Pack

    去掉注释.样式.和js代码: foreach(var script in doc.DocumentNode.Descendants("script").ToArray()) scr ...

  3. Html Agility Pack解析Html(C#爬虫利器)

    有个需求要写网络爬虫,以前接触过一个叫Html Agility Pack这个解析html的库,这次又要用到,然而发现以前咋用的已经不记得了,现在从头开始记录一下使用过程. Html Agility P ...

  4. Html Agility Pack 解析Html

    Hello 好久不见 哈哈,今天给大家分享一个解析Html的类库 Html Agility Pack.这个适用于想获取某网页里面的部分内容.今天就拿我的Csdn的博客列表来举例. 打开页面  用Fir ...

  5. 开源项目Html Agility Pack实现快速解析Html

    这是个很好的的东西,以前做Html解析都是在用htmlparser,用的虽然顺手,但解析速度较慢,碰巧今天找到了这个,就拿过来试,一切出乎意料,非常爽,推荐给各位使用. 下面是一些简单的使用技巧,希望 ...

  6. Html Agility Pack解析HTML页

    文章来源:Html Agility Pack解析HTML页 现在,在不少应用场合中都希望做到数据抓取,特别是基于网页部分的抓取.其实网页抓取的过程实际上是通过编程的方法,去抓取不同网站网页后,再进行分 ...

  7. 强大而灵活的的Html解析器——Html Agility Pack

    一.概述 Html Agility Pack 简称HAP,是一个强大而灵活的解析Html DOM的.Net类库. 二.官方链接 官网:http://html-agility-pack.net/ NuG ...

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

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

  9. 使用Html Agility Pack快速解析Html内容

    Html Agility Pack 是一个开源的.NET 方案HTML解析器. 开源地址:https://github.com/zzzprojects/html-agility-pack 用法:vs上 ...

随机推荐

  1. shell的数值计算,小数计算

    shell脚本中,可以进行数值计算, 如加减乘除,通过expr.let.(())等完成,文章介绍:http://blog.csdn.net/longshenlmj/article/details/14 ...

  2. 插件开发之360 DroidPlugin源码分析(一)初识

    转载请注明出处:http://blog.csdn.net/hejjunlin/article/details/52123450 DroidPlugin的是什么? 一种新的插件机制,一种免安装的运行机制 ...

  3. 【Shader拓展】Illustrative Rendering in Team Fortress 2

    写在前面 早在使用ramp texture控制diffuse光照一文就提到了这篇著名的论文.Valve公司发表的其他成果可见这里.这是Valve在2007年发表的一篇非常具有影响力的文章,我的导师也提 ...

  4. 网站开发进阶(四十二)巧用clear:both

    网站开发进阶(四十二)巧用clear:both 前言 我们在制作网页中用div+css或者称xhtml+css都会遇到一些很诡异的情况,明明布局正确,但是整个画面却混乱起来了,有时候在IE6下看的很正 ...

  5. 1052. Linked List Sorting (25)

    题目如下: A linked list consists of a series of structures, which are not necessarily adjacent in memory ...

  6. A*寻路算法入门(四)

    大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 免责申明:本博客提供的所有翻译文章原稿均来自互联网,仅供学习交流 ...

  7. HTML5 placeholder(空白提示) 属性

    原文地址:HTML5′s placeholder Attribute 演示地址: placeholder演示 原文日期: 2010年08月09日 翻译日期: 2013年8月6日 浏览器引入了许多的HT ...

  8. Android项目-高考作文项目架构(二)

    1, 普通的http json请求 请看下面架构草图: 这样就抽象出了其他Activity可能需要的Http Json请求的功能. 只要其他Activity有Http Json请求的需求都可以继承Ba ...

  9. 【一天一道LeetCode】#86. Partition List

    一天一道LeetCode 本系列文章已全部上传至我的github,地址:ZeeCoder's Github 欢迎大家关注我的新浪微博,我的新浪微博 欢迎转载,转载请注明出处 (一)题目 Given a ...

  10. pig limit 少于10行,会返回所有记录

    my = limit g_log 3; STORE my INTO '/user/wizad/tmp/my' USING PigStorage(','); 这样会返回g_log的所有记录. 要大于等于 ...