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

 /// <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. DFS

    HDU1181  http://acm.hdu.edu.cn/showproblem.php?pid=1181 #include<stdio.h> #include<algorith ...

  2. Appnium安装——Mac篇

    mac下搭建appium环境有两种方法: 1.直接下载appium.dmg 运行即可 2.使用node从命令行运行appium Mac下的appnium环境搭建 一.首先安装homebrew 1.首先 ...

  3. SmartWiki开发日志之环境配置和系统安装

    SmartWiki是基于laravel5.2开发的在线文档管理系统. 最低需要PHP5.6+MySql5.7.同时PHP需要开启一下扩展: MCrypt GD PDO PDO_mysql mbstri ...

  4. idea 下的maven使用问题汇总

    1,-Dmaven.multiModuleProjectDirectory system propery is not set. Check $M2_HOME environment variable ...

  5. Sql语句直接返回XML文件

    通过Sql语句直接返回XML文件 select UserID,UserName,AccountName,LoginPassword from users for xml raw('Users') ,r ...

  6. vps选择

    banwagonhost.com digitalocean.com vultr.com 优惠链接 https://www.vultr.com/freetrial

  7. oracle 游标示例

    declare iCount int:=0; sPath nvarchar2(200); tdzsh nvarchar2(50);begin for x in (select c.imgpath fr ...

  8. dedecms后台登录如何去除验证码设置

    dedecms后台验证有时间输入总是不对,有时候却不显示,而输入验证码无疑是一个麻烦的过程,那么我们怎么样来去除后台验证码,实现输入帐号密码直接登录呢?我来为大家介绍一下: 让人感到烦恼的情况出现了! ...

  9. Sunglasses

    It's hot this summer. It also reminds me of one case about sunglasses. She was new to this company a ...

  10. C# 集合 — Hashtable 线程安全

    基础知识重要吗?真的很重要. 就在笔者与同事聊天中突然同事提出一个问题,让笔都有点乱了手脚(有点夸张),题目是这样的: 问:Hashtable 是线程安全的吗? 答:…… (沉默中,Yes Or No ...