使用C#抓取页面----GET方法,POST方法,抓取登录页面

为了简单实现,将不附加其他请求信息,如HEAD中的用户浏览器信息等。

 

一、使用GET方法

    使用GET方法应该算是最简单,最好操作的。以开心网的用户首页为例,网址统一为:http://www.kaixin001.com/home/?uid=xxxxxxx。其中的xxxxxxxx表示该用户的用户ID。用户首页,在GET方法,没有加入任何其他请求数据时,请求会进行重定向,定向到开心网的登录页。

    新建一个控制台,并写入GET方法的代码,代码如下:

 

 

因未登录,可以看到,输出的页面,是登录页面的HTML源码:

 

二、使用POST方法,进行页面抓取

   POST方法与GET方法相似,只是Method的方法重新设置为“POST”,把要POST的数据使用编码转化为Byte[]格式,再进行长度设置。在请求前,先获取HTTPWebRequest的请求流,把POST的数据写入,再执行请求。例子如下:

 

 

注:以上请自己寻找一个可以进行POST验证的网址进行抓取。

注意,POST时必须加以下代码,否则服务端无法获取到POST的数据

req.ContentType = "application/x-www-form-urlencoded"


三、抓取必须登录的页面

     其实无论是以SESSION验证的,还是以COOKIE验证的,都必须得使用在请求中带相关COOKIE的值。要想取得COOKIE值,必须先用浏览器登录,然后再查看该登录所必须用到的COOKIE。例子以开心网不带ID的个人首页,http://www.kaixin001.com/home/。进行抓取。

若不加入COOKIE,则抓取到的HTML是重定向的HTML,即登录页面的HTML。例子代码如下:

 

因COOKIE涉及个人隐私,已对COOKIE进行了字符修改,若有需要用到的朋友,请自行登录,查找自己登录后的COOKIE值。

 

运行界面如下:

 

 

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值