`
yangshen998
  • 浏览: 1249757 次
文章分类
社区版块
存档分类
最新评论

C#抓取需要登录的页面

 
阅读更多

抓取需要登录的页面的内容,原理主要是:先模拟登录,获取到COOKIE,然后接下来的访问,都使用这个COOKIE,就可以访问到需要登录的页面。

理论上,浏览器可以做到的事情,程序应该也可以。

不过,模拟登录,说起来容易,但不同站点有不同的处理方式,复杂程度不同。

1、最简单的,是POST适当的数据,不用验证码

2、象Discuz!系列的,要先访问某一个页面,获得随机码,然后置于POST数据中,才可以登录

3、需要验证码。验证码识别是另外一个课题。

无论如何,POST数据必须的。那么,模拟登录,需要POST哪些数据呢?

其实,需要POST哪些数据,每个站点都有所不同,所以要有一个合适的工具来进行分析。我装的是firefox的扩展控件:HttpFox。利用它,可以很方便的获取登录指定站点时,所需要提交的数据串。

模拟登录的代码是这样的:


获得这个CookieContainer后,保存下来,以后每访问该网站,都带上它。CookieContainer相当于浏览器的COOKIE容器,里面存放访问各个网站的COOKIE。

带COOKIE访问代码如下:

其中参数 CookieContainer cc 就是保存的CookieContainer。



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics