5

私が欲しいのは次のとおりです。

1) Internet Explorer を使用してページにログインする

2) WinInet API を使用してサイトをクロールするソフトウェアに、同じ Cookie/セッションを再利用させる (つまり、クローラーが「ログイン」するようにする)

私は INDY を使用して自分でログインを構築しようとしましたが、セッション cookie ログインはうまく機能しますが、最近の多くの Web サイトでは、最初のログインにクライアント側とサーバー側のものを組み合わせた、より複雑なログイン メカニズムが使用されています。

...

たとえば WordPress 、ASP.Net などは、ハッシュ/時間/ユーザーエージェント コード/チェックなどと同様にクライアント側/AJAX のものを使用すると私が信じる理由は、私から 30 秒後にまったく同じ HTTP ヘッダーを送信できるからです。ログイン時に使用される FireFox などの独自のクローラー プログラムですが、動作しません。

(これを、私自身のクローラー プログラムが正常にログインするセッション Cookie に基づく通常のログインと比較してください。)

4

1 に答える 1

2

IEはデフォルトで「インターネットCookie」を共有していないようです。[ツール] >[インターネットオプション] >[セキュリティ]には、さまざまなゾーンがあります。インターネットゾーンはデフォルトで保護モードが有効になっており、WininetAPIを使用してこのCookieにアクセスすることはできません。ただし、ローカルイントラネットゾーンはデフォルトで有効になっている保護モードではないため、WininetAPIを使用してこのCookieにアクセスします。

プロテクトモードのCookieは%appdata%\ Microsoft \ Windows \ Cookies \ Lowに保存され、プロテクトモードではないCookieは%appdata%\ Microsoft \ Windows\Cookiesに保存されます。

ソフトウェアを修正するには、インターネットゾーンからプロテクトモードを有効にするのチェックを外し、 IEを再起動し、WebサイトにログインしてCookieを再度取得します。

于 2013-02-24T19:16:44.300 に答える