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; }

}

转载于:https://www.cnblogs.com/taidou/p/4673306.html

[爬虫]通过url获取连接地址中的数据相关推荐

  1. PHP如何获取回调地址中的数据_php 回调地址,并返回参数的方法

    header("Content-type: text/html; charset=utf-8"); /** * php 回调地址,并返回参数的方法 * parse_url * pa ...

  2. jquery如何获取iframe地址中的参数

    对这样的需求,小编开发中也遇到了不少次了,我们经常会用到iframe弹出一个弹出框,有时候我们会因为需求而获取弹出框中地址中的参数,那么如何获取iframe地址中的参数呢? 如上图,若想要获取Cour ...

  3. C#获取动态网页中的数据

    删除线格式 # C#获取动态网页中的数据 在实际工作需求中,编辑的文档需要获取历史地震的信息,所以利用计算机语言获取是一个简化人工操作的必要过程,本文分享一下自己第一次获取交互信息的爬虫经历! 操作流 ...

  4. mouted能不能访问data中的数据_Vue(定时器)解决mounted不能获取到data中的数据问题...

    vue中data定义 data() { return { isok:10, } } 在vue中使用定时器 如下 mounted是钩子函数 mounted(){ console.log(this.iso ...

  5. Matplotlib可视化散点图、配置X轴为对数坐标、并使用线条(line)连接散点图中的数据点、基于分组变量配置数据点的颜色(connecting two coordinates with line

    Matplotlib可视化散点图.配置X轴为对数坐标.并使用线条(line)连接散点图中的数据点.基于分组变量配置数据点的颜色(connecting two coordinates with line ...

  6. 【Proteus仿真】在AT24C04的连续地址中写入数据并循环读取

    [Proteus仿真]在AT24C04的连续地址中写入数据并循环读取 Proteus仿真 实验说明 在AT24C04的地址0-9中分别写入数据,然后在while循环里面循环从AT24C04的地址0-9 ...

  7. mysql 截取字符串部分值,Mysql字符串截取_获取指定字符串中的数据

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

  8. 获取csv表格中的数据

    一.使用绝对路径获取import pandas as pd # 绝对路径,获取表格中的数据 abs_path = r'C:\Users\test.csv' df = pd.read_csv(abs_p ...

  9. 微信小程序 - 无法获取云端数据库中的数据的问题(修改云端数据库权限)

    小程序中从云端数据库获取不到数据 从云端数据库中取数据 // 使用云数据库 const db = wx.cloud.database(); export default{data(){return { ...

最新文章

  1. 为什么索引可以让查询变快,你有思考过吗?
  2. Ubuntu20.04软件源更换
  3. 手把手教你将H5游戏打包为手游
  4. Codeforce 水题报告(2)
  5. python统计词频_Python统计四六级考试的词频
  6. C++静态类型成员变量的初始化顺序(单例模式)
  7. mysql设置查询结果最大值_查找MySQL查询结果字段的最大值
  8. 利用域名(host碰撞)碰撞实现从任何地方发起中间人攻击(理论篇)
  9. tomcat 软连接问题
  10. php 检测 变量是否设置,php判断变量是否定义
  11. lisp方格网法计算土方量_飞时达土方软件多级边坡土方量计算(选方格点放坡)...
  12. (2)颜色渐变及原理
  13. 丹阳眼镜购买攻略,其它城市可以此参考
  14. js打怪升级之路三 点出满天小星星
  15. 环信 android 发送消息,android 环信 集成发送消息崩溃
  16. 高三学生早恋怎么处理?家长该怎么做?
  17. PDF怎么转换成Excel?转后一页一个子表怎么合并?
  18. 【小波滤波】基于小波变换的噪声信号滤波处理matlab仿真
  19. 微信小程序服务器错误错误码404,微信小程序 云开发 错误代码 大全
  20. 用 C语言的写出几个小程序

热门文章

  1. 担心被机器人抢饭碗?亚马逊教 10 万员工这样保住工作
  2. 系统学习机器学习之监督学习
  3. 如何在CSDN博客中编辑公式?
  4. Docker部署配置相关使用总结
  5. php变量值随机,PHP生成各类随机数值
  6. python 用递归求质数_编写一个递归函数,它接受和整数,如果它的所有数字都是质数,则返回“True”...
  7. pycharm远程和本地同时_pycharm远程开发之django配置
  8. linux grunt环境,安装 Grunt - Grunt: JavaScript 世界的构建工具 | Grunt 中文网
  9. 在python中、列表中的元素可以是_在Python中存储一个列表的元素,在另一个列表中 – 通过引用?...
  10. @ControllerAdvice这个注解主要作用是什么