抓取网站页面的内容,简单的类应用,代码如下:

 /// <summary>
/// 获取页面内容
/// </summary>
/// <param name="url">Url链接</param>
/// <returns></returns>
public string WebHtmlCon(string url)
{
try
{
string htmlCon = "";
WebRequest request = WebRequest.Create(url);
WebResponse response = request.GetResponse();
Stream stream = response.GetResponseStream();
using (StreamReader sReader = new StreamReader(stream, Encoding.UTF8))
{
htmlCon = sReader.ReadToEnd();
}
return htmlCon;
}
catch (Exception e)
{
return e.Message;
}
}
/// <summary>
/// 获取页面内容
/// </summary>
/// <param name="url">Url链接</param>
/// <returns></returns>
public string WebClientHtmlCon(string url)
{
try
{
WebClient webclient = new WebClient();
webclient.Encoding = Encoding.UTF8;
string HtmlCon = webclient.DownloadString(url);
return HtmlCon;
}
catch (Exception E)
{
return E.Message;
}
}

根据抓取的内容进行实际应用。

例如api的应用,获取页面内容的json数据,并进行分析获取自己想要的数据:

json数据分析代码(引用的.Net自带的类库应用):

         /// <summary>
/// JSON数据解析 返回字典类 引用:System.Web.Extensions 类库
/// </summary>
/// <param name="jsonData">json数据</param>
/// <returns></returns>
private static Dictionary<string, object> JsonToDictionary(string jsonData)
{
JavaScriptSerializer jss = new JavaScriptSerializer();
return jss.Deserialize<Dictionary<string, object>>(jsonData);
}

快递查询API应用:

  /// <summary>
/// 查询邮件的邮寄状况
/// </summary>
/// <param name="con">邮寄公司</param>
/// <param name="number">邮寄号</param>
/// <returns></returns>
public static string SelectYJ(string con, string number)
{
string url = "http://www.kuaidi100.com/query?type=" + con + "&postid=" + number;//查询地址 Dictionary<string, object> diclist = new Dictionary<string, object>();
diclist = JsonToDictionary(WebHtmlCon(url)); if (diclist["message"].ToString() == "ok")
{
string KuaiDi = "<table id=\"showtablecontext\" style=\"border-collapse: collapse; width:520px; border-spacing: 0; border:0;\">";
KuaiDi += "<tbody>";
KuaiDi += "<tr><th width='163' style=\"background: #64AADB; border: 1px solid #75C2EF; color: #FFFFFF; font-size: 14px; font-weight: bold; height: 28px; line-height: 28px; text-indent: 15px;\">时间</th><th width='354' style=\"background: #64AADB; border: 1px solid #75C2EF; color: #FFFFFF; font-size: 14px; font-weight: bold; height: 28px; line-height: 28px; text-indent: 15px;\">地点和跟踪进度</th></tr>";
ArrayList list = (ArrayList)diclist["data"]; foreach (Dictionary<string, object> item in list)
{ KuaiDi += " <tr><td style=\"border: 1px solid #DDDDDD; font-size: 12px; line-height: 22px; padding: 3px 5px;\">" + item["time"].ToString() + "</td><td>" + item["context"].ToString() + "</td></tr>"; }
KuaiDi += "</tbody>";
KuaiDi += "</table>";
return KuaiDi;
}
else
{
return "<p style=\"line-height:28px;margin:0px;padding:0px;color:#F21818; font-size: 14px;\">快递公司网络异常,请稍后查询.</p>";
}
}

结果为:

C# 页面抓取类的更多相关文章

  1. 新浪新闻页面抓取(JAVA-Jsoup)

    1.使用gradle建立工程: 工程格式如下: include ':spider-demo' rootProject.name = 'my-spider-demo' settings def void ...

  2. 分享一个c#t的网页抓取类

    using System; using System.Collections.Generic; using System.Web; using System.Text; using System.Ne ...

  3. C# 页面抓取获取快递信息

    通过页面抓取信息可以获得很多我们想要的信息,比如现在常会用到的快递查询,主要抓取的网站为http://www.kuaidi100.com/ 通过IE的网络分析我们可以得到下面信息 通过对这个网站的分析 ...

  4. [python]初试页面抓取——抓取沪深股市交易龙虎榜数据

    [python]抓取沪深股市交易龙虎榜数据 python 3.5.0下运行 没做自动建立files文件夹,需要手动在py文件目录下建立files文件夹后运行 #coding=utf-8 import ...

  5. java 网页页面抓取标题和正文

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ...

  6. 【Python3 爬虫】01_简单页面抓取

    运行平台:Winodows 10 Python版本:Python 3.4.2 IDE:Sublime text3 网络爬虫 网络爬虫,也叫网络蜘蛛(Web Spider),如果把互联网比喻成一个蜘蛛网 ...

  7. Java HTML页面抓取实例

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ...

  8. php curl抓取类分享

    class UsualFunForNetWorkHelper { /*** * post请求数据 */ public static function HttpsPost($url, $data = n ...

  9. AutoIT: 通过页面抓取来陈列任务管理器里面所有进程的列表

    #include<Array.au3> $handle =WinGetHandle("Windows 任务管理器") ;$ctrl =ControlGetHandle( ...

随机推荐

  1. DP三角形

    Hrbust1038  http://acm.hrbust.edu.cn/index.php?m=ProblemSet&a=showProblem&problem_id=1038 // ...

  2. DP编辑距离

    俄罗斯科学家Vladimir Levenshtein在1965年提出了编辑距离概念. 编辑距离,又称Levenshtein距离,是指两个字符串之间,由一个转成另一个所需的最少编辑操作次数.许可的三种编 ...

  3. 关联规则挖掘之apriori算法

    前言: 众所周知,关联规则挖掘是数据挖掘中重要的一部分,如著名的啤酒和尿布的问题.今天要学习的是经典的关联规则挖掘算法--Apriori算法 一.算法的基本原理 由k项频繁集去导出k+1项频繁集. 二 ...

  4. 使用Flex4的PopUpManager的addPopUp() 方法弹出 removeChild异常的解决办法

    Flex4中,弹出窗口有两种: Alert.show("balabalabala-");   PopUpManager.addPopUp([要弹出的控件],[父控件],[是否模态] ...

  5. 开机自启动redis

    修改redis.conf,打开后台运行选项: # By default Redis does not run as a daemon. Use 'yes' if you need it. # Note ...

  6. 洛谷P2738 [USACO4.1]篱笆回路Fence Loops

    P2738 [USACO4.1]篱笆回路Fence Loops 11通过 21提交 题目提供者该用户不存在 标签USACO 难度提高+/省选- 提交  讨论  题解 最新讨论 暂时没有讨论 题目描述 ...

  7. 二模07day2解题报告

    T1.采药(medic) 有n个草药,要在m的时间内获得最大价值. 乍一看像是01背包,然而数据只能过50分. 考虑数据范围,t<=10,w<=10,所以只有121种草药.考虑多重背包的二 ...

  8. spm3安装和使用

    readme : 因为我在在spm3中主要用到的是spm build这个命令,因此本文简单的介绍一下如何安装spm3和使用其中的spm build命令 一.安装 1.安装nodejs 直接去官网下载n ...

  9. 【MySQL】MHA部署与MasterFailover代码分析

    官网:https://code.google.com/p/mysql-master-ha/ 参考:http://blog.csdn.net/wulantian/article/details/1328 ...

  10. 第九周java学习总结

    20145306<java程序设计>第九周学习总结 教材学习内容总结 第十六章 一.JDBC入门 1.JDBC简介 JDBC是用于执行SQL的解决方案,开发人员使用JDBC的标准接口,数据 ...