5

我想要的是以下内容:

1) 使用 Internet Explorer 登录页面

2) 让我的使用 WinInet API 抓取网站的软件重用相同的 cookie/会话(即,让爬虫“登录”)

我曾尝试使用 INDY 自己构建登录,虽然会话 cookie 登录效果很好,但现在许多网站使用更复杂的登录机制,将客户端和服务器端的东西结合起来进行初始登录。

...

我相信例如 WordPress 、 ASP.Net 等使用客户端/AJAX 的东西以及哈希/时间/用户代理代码/检查和类似的东西的原因是我可以在 30 秒后从我的自己的爬虫程序,例如在登录期间使用的 FireFox,但它不会工作。

(将此与基于会话 cookie 的正常登录进行比较,我自己的爬虫程序可以正常登录。)

4

1 回答 1

2

默认情况下,IE 似乎不共享“互联网 cookie”。在Tools > Internet options > Security中,有不同的区域。Internet区域默认启用保护模式,您无法使用 Wininet API 访问此 cookie。但是,本地 Intranet区域默认情况下未启用保护模式,因此您可以使用 Wininet API 访问此 cookie。

保护模式 cookie 存储在%appdata%\Microsoft\Windows\Cookies\Low中,非保护模式 cookie 存储在%appdata%\Microsoft\Windows\Cookies中。

要修复您的软件,请取消选中从Internet区域启用保护模式,重新启动 IE 并登录您的网站以再次获取 cookie。

于 2013-02-24T19:16:44.300 回答