標籤: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 ”部分無效 的解決辦法
參數值不能包含分號 (;) 或逗號 (,),除非它們包含在轉義的雙引號中