美术设计 发表于 2024-12-26 08:39:34

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

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

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

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

代码如下:

      static extern bool InternetGetCookieEx(string pchURL, string pchCookieName, StringBuilder pchCookieData, ref
            System.UInt32 pcchCookieData, int dwFlags, IntPtr lpReserved);

      
      static extern int InternetSetCookieEx(string lpszURL, string lpszCookieName, string lpszCookieData, int dwFlags,
      IntPtr dwReserved);
      private static string GetCookies(string url)
      {
            uint dataSize = 256;
            StringBuilder cookieData = new StringBuilder((int)dataSize);
            if (!InternetGetCookieEx(url, null, cookieData, ref dataSize, 0x2000, IntPtr.Zero))
            {
                if (dataSize < 0)
                  return null;
                cookieData = new StringBuilder((int)dataSize);

                if (!InternetGetCookieEx(url, null, cookieData, ref dataSize, 0x00002000, IntPtr.Zero))
                  return null;
            }
            return cookieData.ToString();
      }可能需要和webBrowser1.Document.Cookie结合一起使用,就可以获得全部的cookie信息了,

抓取数据的登录问题就解决了。是不是非常实用

页: [1]
查看完整版本: 利用浏览器控件解决数据抓取的登录方法