微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从 WebView2 Edge 网站登录中获取 cookie 以进行 WinInet/WinHTTP 爬网

如何解决从 WebView2 Edge 网站登录中获取 cookie 以进行 WinInet/WinHTTP 爬网

假设我使用 WinInet/WinHTTP 来抓取网站。过去,我可以简单地要求用户使用嵌入式 IE 控件或 IE 浏览器登录网站,而 WinInet 将使用与 IE 浏览器相同的 cookie。现在不会了,因为 Internet Explorer 会变老并且很快就会被删除

无论出于何种原因,Edge 浏览器都不会包装/使用 Windows Internet 设置/cookies 存储......有没有人有通过嵌入式 webview2 登录的经验......获取厨师并转移到 WinInet?在这里,您可以使用 WinInet/WinHTTP 在登录状态下抓取网站

在发出 WinInet HTTP 请求之前,通过嵌入式 WebView2 控件登录并将所有 cookie 传输到 WinInet 是否可行?

(我添加一个特定于 Delphi 的标签 (TEdgebrowser),但我很想知道是否可以将上述一般概念付诸实践。)

解决方法

我们向 WebView2 添加了 CoreWebView2.CookieManager,因此您应该能够枚举 WebView2 中的所有 cookie 并将它们设置为 wininet,反之亦然。 WebView2 和 Edge 基于 Chromium 并且有自己的 HTTP 堆栈和状态位置,因此没有连接到 wininet。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。