1. 要想获取指定连接的数据,那么就得使用HtmlDocument对象,要想使用HtmlDocument对象就必需引用using
HtmlAgilityPack;

2. 详细步骤如下:

    步骤一:

        获取链接地址内容:

        var html =HttpDownLoadHelper.GetUtf8Html("链接地址");

HttpDownLoadHelper类中的内容如下:

public
class
HttpDownLoadHelper

{


///
<summary>


///
根据URL获取一个页面的Html内容


///
</summary>


///
<param name="url"></param>


///
<returns></returns>


public
static
string
GetUtf8Html(string
url)

{


WebClient
wc
=
new
WebClient();


wc.Encoding
=
Encoding.UTF8;


var
html
=
wc.DownloadString(url);


return
html;

}

}

    步骤二:

        判断获取到的内容是否为空?

    步骤三:

        获取数据:

            ·实例化"HtmlDocument
【HTML文档】"对象

                HtmlDocument
doc
=
new
HtmlDocument();

            ·载入获取到的内容

                doc.LoadHtml(html);

            ·获取文档中的根节点

                HtmlNode
rootNode
=
doc.DocumentNode;

            ·从根节点中通过标签获取指定的内容。

    HtmlNodeCollection
titleNodes
=
rootNode.SelectNodes("对应的标签");

        存储数据:

            ·创建一个存放数据的List集合

            List<NewsList>
newsList=new
List<NewsList>();

NewsList对象的代码如下:

            public
class
NewsList

        {

        public
string
Title { get; set; }

        public
string
Url { get; set; }

        }    

            ·将数据添加到集合中:

            foreach (var
title
in
titleNodes)

{


NewsList
news=new
NewsList();


news.Title
=
title.GetAttributeValue("title", "");

                        // title是标签的属性

news.Url="http://www.yulinu.edu.cn"+title.GetAttributeValue("href", "");

                        //href是标签的属性。


newsList.Add(news);

}

 

具体事例:【获取榆林学院首页中的新闻列表】

·引用using
HtmlAgilityPack;

HtmlAgilityPack.dll的下载地址:http://htmlagilitypack.codeplex.com/【里面有支持各种.NET Framework的版本的dll。】

·主方法:

public
static
void
Main(string[] args)

{


//创建一个存放新闻的List集合    


List<NewsList>
newsList=new
List<NewsList>();


//根据url获取一个页面的Html内容。


var
html
=
HttpDownLoadHelper.GetUtf8Html("http://www.yulinu.edu.cn/news.jsp?urltype=tree.TreeTempUrl&wbtreeid=1036");


//判断是否为空


if (!string.IsNullOrEmpty(html))

{


HtmlDocument
doc
=
new
HtmlDocument(); //实例化html实例对象


doc.LoadHtml(html);//载入html文档


HtmlNode
rootNode
=
doc.DocumentNode; //获取文档中的根节点


//从根节点中通过标签获取指定的内容。


HtmlNodeCollection
titleNodes
=
rootNode.SelectNodes("//div[@class='Classbox List']/ul/li/a");


foreach (var
title
in
titleNodes)

{


NewsList
news=new
NewsList();


news.Title
=
title.GetAttributeValue("title", "");


news.Url
=
"http://www.yulinu.edu.cn"
+
title.GetAttributeValue("href", "");


newsList.Add(news);

}

}


//输出标题和地址


foreach (var
list
in
newsList)

{


Console.WriteLine("新闻标题为:{0},新闻链接地址为:{1}",list.Title,list.Url);

}


Console.WriteLine("总共有{0}条新闻",newsList.Count);


Console.ReadKey();

}

·HttpDownLoadHelper代码如下:

    public
class
HttpDownLoadHelper

{


///
<summary>


///
根据URL获取一个页面的Html内容


///
</summary>


///
<param name="url"></param>


///
<returns></returns>


public
static
string
GetUtf8Html(string
url)

{


WebClient
wc
=
new
WebClient();


wc.Encoding
=
Encoding.UTF8;


var
html
=
wc.DownloadString(url);


return
html;

}

}

·NewsList代码如下:

public
class
NewsList

{


public
string
Title { get; set; }


public
string
Url { get; set; }

}

[爬虫]通过url获取连接地址中的数据的更多相关文章

  1. 获取给定地址中的域名,substring()截取

    package seday01;/** * 获取给定地址中的域名 * @author xingsir */public class Test { public static void main(Str ...

  2. 项目中通过Sorlj获取索引库中的数据

    在开发项目中通过使用Solr所提供的Solrj(java客户端)获取索引库中的数据,这才是真正对项目起实质性作用的功能,提升平台的检索性能及检索结果的精确性 第一步,引入相关依赖的jar包 第二步,根 ...

  3. asp.net网页上获取其中表格中的数据(爬数据)

    下面的方法获取页面中表格数据,每个页面不相同,获取的方式(主要是正则表达式)不一样,只是提供方法参考.大神勿喷,刚使用了,就记下来了. 其中数据怎么存,主要就看着怎么使用了.只是方便记录就都放在lis ...

  4. vue父组件中获取子组件中的数据

    <FormItem label="上传头像" prop="image"> <uploadImg :width="150" ...

  5. Mysql字符串截取_获取指定字符串中的数据

    前言:本人遇到一个需求,需要在MySql的字段中截取一段字符串中的特定字符,类似于正则表达式的截取,苦于没有合适的方法,百度之后终于找到一个合适的方法:substring_index('www.sql ...

  6. win10连接无线网,开启移动热点,手机连接它手机一直显示获取ip地址中。

    *必须要有无线网卡才能设置WIFI首先打开电脑,选中“计算机”或者“我的电脑”,右击进入“管理”选项“.打开“计算机管理”窗口之后,在左栏菜单选项中找到“服务和应用程序”下的“服务”选项,如图点击进入 ...

  7. 如何获取 C# 类中发生数据变化的属性信息

    一.前言 在平时的开发中,当用户修改数据时,一直没有很好的办法来记录具体修改了那些信息,只能暂时采用将类序列化成 json 字符串,然后全塞入到日志中的方式,此时如果我们想要知道用户具体改变了哪几个字 ...

  8. C# 如何获取SQL Server 中指定数据表的所有字段名和字段类型

    如何获取指定数据表的所有字段名和字段类型.SqlConnection.GetSchema方法有2个重载形式,获取指定数据表的所有字段名和字段类型的秘密就在GetSchema (String, Stri ...

  9. c# 通过URl 获取返回的json格式数据

    方法一 http://blog.csdn.net/angle_greensky110/article/details/52209497 protected string GetJson(string ...

随机推荐

  1. java中对于JSON 的处理 fastjson gson 系统自带的JSON 的选择

    从2月初到8月末,经历了一段痛苦的经历,现在总算感觉已经走出来了,经历那事之后 感觉对人与人之间的感情看的更透了,人也没那么浮躁了: 说实话 以前从来不知道鸟叫有多好听,现在突然觉的大自然真的很美,放 ...

  2. 直接调用类成员函数地址(用汇编取类成员函数的地址,各VS版本还有所不同)

    在C++中,成员函数的指针是个比较特殊的东西.对普通的函数指针来说,可以视为一个地址,在需要的时候可以任意转换并直接调用.但对成员函数来说,常规类型转换是通不过编译的,调用的时候也必须采用特殊的语法. ...

  3. Android UI--ViewPager扩展Tab标签指示

    Android UI--ViewPager扩展Tab标签指示 2013年8月30日出来冒冒泡 ViewPager这个控件已经不算是陌生的了,各种玩Android的小伙伴们都有发表相应的文章来讲它.我看 ...

  4. 在两个Android设备间通过UDP传输目录内文件

    这两天下了一个使用UDP传输目录内文件的程序,发出来给大家一起看看,共同进步.有问题请指教. 由于udp丢包比较厉害,因此使用了自定义的内部协议,进行双方的确认. 程序跑起来后,看网络状况,有时候会一 ...

  5. HDU 5059 Help him

    题解:先判断第一个是否负号.如果是把第一个符号拿掉之后判断后面的长度是否<=12,并且是否数字,然后转化成数字看看是否在[a,b],注意-0这个数据. 如果不是判断长度是否<=12,并且是 ...

  6. ios7 UIScrollView 尺寸问题

    假设在UINavigationController内设置一个UIViewControlller,而UIViewController的第一个子视图是UIScrollView的话,UIScrollview ...

  7. zoj 2165

    很简单的DFS搜索水题,递归理解深了很easy的!打了一遍就ac了 #include<stdio.h> ][]; ,n,m; void DFS(int x,int y) { ; ;i< ...

  8. ios sdk的制作

    制作sdk的主要目的是将自己的code通过接口提供给其他应用使用.接下来介绍.a 静态库的制作注意事项: 1.首先.a文件的静态库要进行随时的测试,因此需要将其放入应用中(创建一个应用,再创建一个.a ...

  9. Android 手机上安装并运行 Ubuntu 12.04

    ubuntu.sh脚本的原地址变动了,导致下载不了,现在更新了网盘地址.小技巧:遇到一些下载失效的时候可以试一试p2p下载工具(如 easyMule.迅雷等)试一试,说不定有人分享过~* —————— ...

  10. removeCss

    (function ($) { //删除元素行内style中单个style和多个style //示例: //$(".b").removeCss("color") ...