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

 /// <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. MAC 下用GCC编译报错:“Undefined symbols for architecture x86_64: ”

    解决方法: 因为GCC编译的时候没有链接C++ standard library, 因此在编译的时候要加入符号 -lstdc++ 使用命令: gcc myprog.c -o myprog -lstdc ...

  2. Modifiers

    Sometimes it is useful for a function to modify the objects it gets as parameters. In that case, the ...

  3. 网站导航不止有hao123!

    网址导航对于我们上网而言非常的重要,在一定程度上决定了我们每天都在接触一些什么样的网络信息.我个人一直用的是hao123,总体感觉这个网址导航是非常的不错的,不过网址导航不只只有这一个好的更不只有这一 ...

  4. Android基础总结(8)——服务

    服务(Service)是Android中实现程序后台运行的解决方案,它非常适合用于去执行哪些不需要和用户交互而且还要长期运行的任务.服务的运行不依赖任何用户界面,即使当程序被切换到后台,或者用户打开了 ...

  5. java中HashMap的用法

    重点介绍HashMap.首先介绍一下什么是Map.在数组中我们是通过数组下标来对其内容索引的,而在Map中我们通过对象来对对象进行索引,用来索引的对象叫做key,其对应的对象叫做value.在下文中会 ...

  6. 在Windows程序中启用console输出-2016.01.04

    在某些时候,我们可能需要在Win32窗口应用程序中打开控制台窗口,打印一些消息,或者作为当前程序的另外一个人机交互界面,或者为了帮助调试程序.为了达到这种效果,需要了解函数AllocConsole和C ...

  7. kickstrat

    定制部分 硬盘分区 root密码 网络地址 公共部分 %pre% %post% tcp调优 集中配置程序(ansible) sudo配置

  8. Bootstrap <第一篇>

    一.使用Bootstrap要引用的文件 要使用Bootstrap,基本架构要引用如下文件: <link href="bootstrap.min.css" rel=" ...

  9. 【MySQL】frm文件解析

    官网说明:http://dev.mysql.com/doc/internals/en/frm-file-format.html frm是MySQL表结构定义文件,通常frm文件是不会损坏的,但是如果出 ...

  10. Git 从服务器取得最新代码覆盖本地

    第一种方法 git fetch --all git reset --hard origin/master git fetch下载远程最新的, 然后,git reset master分支重置 第二种方法 ...