使用c#的Html Agility Pack爬虫工具爬取百度风云榜(一)

由于工作原因,需要在一个app里面加上时事热点的功能,然而不可能每天手动向数据库内添加新闻,所以第一想到的就是爬虫,由于平时工作都是c#居多,所以选用了度娘推荐的Html Agility Pack

首先是喜闻乐见的工具包下载
这里我是下载了htmlagilitypack.1.8.7.nupkg的包
这里是如何在VS里安装nupkg包的方法
安装完毕后,在代码最上方,using HtmlAgilityPack;就完事了

首先这是百度风云榜的界面,我们真正需要的信息只有热搜排行榜里的超链接标题(共50个)百度风云榜实时热点
在这里插入图片描述

首先,我们要把整个网站的HTML代码获取下来,接着才能筛选出我们需要的内容
代码如下
这里的url的值是:http://top.baidu.com/buzz?b=1&fr=topindex
编码百度用的是gbk,encoding的值是Encoding.GetEncoding(“gbk”)

public static string GetHtml(string url, Encoding encoding)//網址,編碼格式
        {
            string html = string.Empty;
            try
            {
                
                string urlStr = url;                    //設定要獲取的地址 
                HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(urlStr);    //建立HttpWebRequest對象 
                request.Timeout = 60000;                                                //定義服務器超時時間 
                ~~//这一段是可以不要的,除非你们需要上网账号
                WebProxy proxy = new WebProxy();                                    //定義一個網關對象 
                proxy.Address = new Uri("http://xx.xx.xx.x:xxxx");            //網關服務器:端口 
                proxy.Credentials = new NetworkCredential("userId", "password");    //用戶名,密碼
                request.UseDefaultCredentials = true;                                    //啟用網關認証 
                request.Proxy = proxy;                                                    //設置網關
                ~~             

                if ((HttpWebResponse)request.GetResponse()== null)//如果該網站不存在或被刪除,則返回空html代碼
                {
                    return "";
                }
                HttpWebResponse response = (HttpWebResponse)request.GetResponse();            //取得回應 
                Stream stream = response.GetResponseStream();                                //得到回應的流對象 
                StreamReader reader = new StreamReader(stream, encoding);                //以xxx編碼讀取流 

                html = reader.ReadToEnd();
            }
            catch(Exception ex) {
                return "";
                throw ex;
            }
            //sr.Close();
            return html;
        }

现在用debug运行一下项目,看看html的值是什么
在这里插入图片描述

在这里插入图片描述
可以看到,这些就是这个网址整个的HTML代码

之后的工作就是,在这些HTML代码中筛选出我们需要的东西,下一章再细讲

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值