首页 > 代码库 > 利用浏览器控件解决数据抓取的登录登录
利用浏览器控件解决数据抓取的登录登录
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 = http://www.mamicode.com/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 = http://www.mamicode.com/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 ”部分无效 的解决办法
参数值不能包含分号 (;) 或逗号 (,),除非它们包含在转义的双引号中
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。