码迷,mamicode.com
首页 > 其他好文 > 详细

利用浏览器控件解决数据抓取的登录登录

时间:2014-07-22 00:04:34      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   使用   os   

1:浏览器登录网址,进行登录,进入系统

2:获取浏览器的cookie信息,用程序开始进行数据的抓取。

遇到的问题是怎么把浏览器的cookie信息读取出来,可以使用InternetGetCookieEx这个Win API来取得httponly的Cookie信息。

代码如下:

 1         [DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
 2         static extern bool InternetGetCookieEx(string pchURL, string pchCookieName, StringBuilder pchCookieData, ref
 3             System.UInt32 pcchCookieData, int dwFlags, IntPtr lpReserved);
 4         
 5         [DllImport("wininet.dll", CharSet = CharSet.Auto, SetLastError = true)]
 6         static extern int InternetSetCookieEx(string lpszURL, string lpszCookieName, string lpszCookieData, int dwFlags,
 7         IntPtr dwReserved);
 8         private static string GetCookies(string url)
 9         {
10             uint dataSize = 256;
11             StringBuilder cookieData = new StringBuilder((int)dataSize);
12             if (!InternetGetCookieEx(url, null, cookieData, ref dataSize, 0x2000, IntPtr.Zero))
13             {
14                 if (dataSize < 0)
15                     return null;
16                 cookieData = new StringBuilder((int)dataSize);
17 
18                 if (!InternetGetCookieEx(url, null, cookieData, ref dataSize, 0x00002000, IntPtr.Zero))
19                     return null;
20             }
21             return cookieData.ToString();
22         }

可能需要和webBrowser1.Document.Cookie结合一起使用,就可以获得全部的cookie信息了,

抓取数据的登录问题就解决了。

 

Cookie 的“Value”=“XXX ”部分无效 的解决办法

参数值不能包含分号 (;) 或逗号 (,),除非它们包含在转义的双引号中

利用浏览器控件解决数据抓取的登录登录,布布扣,bubuko.com

利用浏览器控件解决数据抓取的登录登录

标签:style   blog   http   color   使用   os   

原文地址:http://www.cnblogs.com/csandroid/p/3859362.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!