C#使用WebClient登录网站并抓取登录后的网页信息实现方法

本文实例讲述了C#使用WebClient登录网站并抓取登录后的网页信息实现方法。分享给大家供大家参考,具体如下:

C#登录网站实际上就是模拟浏览器提交表单,然后记录浏览器响应返回的会话Cookie值,再次发送请求时带着这个会话cookie值去请求就可以实现模拟登录的效果了。

如下类CookieAwareWebClient实现在发送请求时都带着cookie。

public class CookieAwareWebClient : WebClient
{
  private CookieContainer cookie = new CookieContainer();
  protected override WebRequest GetWebRequest(Uri address)
  {
    WebRequest request = base.GetWebRequest(address);
    if (request is HttpWebRequest)
    {
      (request as HttpWebRequest).CookieContainer = cookie;
    }
    return request;
  }
}

如下是模拟表单提交登录的使用示例:

var client = new CookieAwareWebClient();
client.BaseAddress = @"https://hovertree.net/any/base/url/";
var loginData = new NameValueCollection();
loginData.Add("login", "YourLogin");
loginData.Add("password", "YourPassword");
client.UploadValues("login.php", "POST", loginData);
//Now you are logged in and can request pages
string htmlSource = client.DownloadString("index.php");

更多关于C#相关内容感兴趣的读者可查看本站专题:《C#编码操作技巧总结》、《C#中XML文件操作技巧汇总》、《C#常见控件用法教程》、《WinForm控件用法总结》、《C#数据结构与算法教程》、《C#面向对象程序设计入门教程》及《C#程序设计之线程使用技巧总结》

希望本文所述对大家C#程序设计有所帮助。

(0)

相关推荐

  • .NET C#使用微信公众号登录网站

    适用于:本文适用于有一定微信开发基础的用户 引言: 花了300大洋申请了微信公众平台后,发现不能使用微信公众号登录网站(非微信打开)获得微信帐号.仔细研究后才发现还要再花300大洋申请微信开放平台才能接入网站的登录.于是做为屌丝程序员的我想到了自己做一个登录接口. 工具和环境: 1. VS2013 .net4.0 C# MVC4.0 Razor 2.插件 A. Microsoft.AspNet.SignalR;时时获取后台数据 B.Gma.QrCodeNet.Encoding;文本生成二维码 实

  • C#利用WebClient实现两种方式下载文件

    最近整理了WebClient 两种方式下载文件 ,留作以后查询. 第一种 string URLAddress = @"http://xiazai.jb51.net"; string receivePath=@"C:\"; client.DownloadFile(URLAddress, receivePath + System.IO.Path.GetFileName(URLAddress)); 就OK了. 第二种 Stream str = client.OpenRea

  • C#实现简单的登录界面

    首先我们来看一个简单的制作过程 打开visual 2010,新建窗体,既然是登录窗口,那么就不让它出现最大化.最小化以及拖拉大小功能(上一节已经提到过怎么设置大小),如图所示,甚至窗体的Text属性值为"登录窗口",大小随意. 创建窗体之后就开始界面详细的组件布局了,主要是在左边拖拉控件,然后放到窗体中去,定义属性值.这些都比较简单. 到了代码响应阶段,双击登录按钮,进入代码视图: private void button1_Click(object sender, EventArgs

  • C#.NET实现网页自动登录的方法

    本文实例讲述了C#.NET实现网页自动登录的方法.分享给大家供大家参考.具体如下: 用C#语言编写一个Windows Form应用程序,实现自动登录一个特定的页面. 下面以自动登录:http://localhost/Web/Login.aspx 作为例子,讲解如何模拟手工输入用户名密码并点击登录,实现自动登录. 新建一个C#应用程序,给应用程序起个名字,如AutoLogin,在窗体中添加一个TextBox.Button,及WebBrowser控件,并为WebBrowser控件添加webBrows

  • C#有效防止同一账号多次登录(附三种方法)

    本文先为大家介绍如何利用缓存Cache方便地实现此功能. Cache与Session这二个状态对像的其中有一个不同之处,Cache是一个全局对象,作用的范围是整个应用程序,所有用户: 而Session是一个用户会话对象,是局部对象,用于保存单个用户的信息. 只要把每次用户登录后的用户信息存储在Cache中,把Cache的Key名设为用户的登录名,Cache的过期时间设置为Session的超时时间,在用户每次登录的时候去判断一下Cache[用户名]是否有值,如果没有值,证明该用户没有登录,否则该用

  • C#实现的三种模拟自动登录和提交POST信息的方法

    本文实例讲述了C#实现的三种模拟自动登录和提交POST信息的方法.分享给大家供大家参考,具体如下: 网页自动登录(提交Post内容)的用途很多,如验证身份.程序升级.网络投票等,以下是用C#实现的方法. 网页自动登录和提交POST信息的核心就是分析网页的源代码(HTML),在C#中,可以用来提取网页HTML的组件比较多,常用的用WebBrowser.WebClient.HttpWebRequest这三个.以下就分别用这三种方法来实现: 1.WebBrowser是个"迷你"浏览器,其特点

  • C# WebClient类用法实例

    进来的项目中要实现能够在windows service中调用指定项目的链接页面.由于访问页面时候使用的是ie浏览器或其他浏览器,所以想起用webclient类. 如果只想从特定的URI请求文件,则使用WebClient,它是最简单的.NET类,它只用一两条命令执行基本操作,.NET FRAMEWORK目前支持以http:.https和file:标识符开头的uri. WebClient下载文件 使用webclient下载文件有两种方法,具体使用哪一种方法取决于文件内容的处理方式,如果只想把文件保存

  • C# webclient中文乱码问题解决方法

    webclient在调用DownloadData或者DownloadString的时候请求回来的数据出现乱码问题,解决办法如下: 1.设置webclient的编码格式为目标编码格式 复制代码 代码如下: WebClient web = new WebClient();//创建webclient对象 web.Encoding = System.Text.Encoding.UTF8;//定义对象语言 string returns = web.DownloadString("_http://www.w

  • C#中在WebClient中使用post发送数据实现方法

    很多时候,我们需要使用C#中的WebClient 来收发数据,WebClient 类提供向 URI 标识的任何本地.Intranet 或 Internet 资源发送数据以及从这些资源接收数据的公共方法.本文就较为详细的说明了WebClient中使用post发送数据实现方法. 下面先说说WebClient 最主要的功能. WebClient 构造函数 .Ctor 包括 一个空构造函数 和一个静态构造函数, 静态构造函数主要为UrlEncode 和UrlEncodeAndWirte 编码提供参照by

  • C#中WebClient实现文件下载

    鉴于各种复杂的网络环境,笔者决定采用不同的编程接口进行下载尝试,以增加程序的可用性. 这里仅介绍使用 WebClient 的方法,后续的文章会介绍其他的方法.博文中主要介绍思路和关键代码,完整的 demo 附在文末. 使用代理访问网络 很多公司的员工都是通过公司设置的代理上网的.通过代理上网主要是方便公司进行各种的管制,当然也能实现一些特殊的功能- 不过这会给我们的程序访问网络带来一些问题. 其实,WebClient 中的 API 已经很智能了,比如我们创建的 HttpWebRequest 对象

随机推荐