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

标签 cookies wininet winhttp webview2 tedgebrowser

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

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

通过嵌入式WebView2控件登录并在发出WinInet HTTP请求之前将所有cookie传输到WinInet是一个可行的解决方案吗?

(我添加了一个 Delphi 特定标签(TEdgeBrowser),但我有兴趣听听上述概念是否可以发挥作用。)

最佳答案

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

关于cookies - 从 WebView2 Edge 网站登录获取 cookie 以进行 WinInet/WinHTTP 爬网,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68587138/

相关文章:

python-3.x - 使用 aiohttp 获取 cookie

angularjs - localStorage 与 sessionStorage 与 cookies

c++ - HttpAddRequestHeaders 添加的 header 和 HttpSendRequest 发送的 header 有什么区别

delphi - 确定要下载的文件的名称

c++ - 如何在 ftp 后获取文件的大小?

com - 使用 WinHttp.WinHttpRequest 查找检索到的二进制数据的大小

asp.net - 在ASP.NET Core MVC Razor View 中访问cookie值

ios - 未调用 WKHTTPCookieStore.setCookie 完成处理程序

c++ - 获取 winhttp.h 的推荐方法是什么?

c++ - 如何使用 winhttp 获取请求 cookie?