1

NodeJS を使用して、イントラネット上のプリンター Web インターフェイスにアクセスするための小さなアプリケーションを作成しています。モジュールを使用しrequireて接続し、モジュールを使用しcheerioてデータを解析/表示します。

残念ながら、プリンターの 1 つはログイン フォームを使用します (html ヘッダー認証とは異なります)。関数を使用しrequest.postて正しいパラメーターを送信しています。これが成功した場合は、DOM で必要な情報を見つけますが、これは成功せcheerio.load(new url here)ず、「セッション タイムアウト」ページにリダイレクトされます。

最初の POST リクエストからセッションを維持し、必要な情報を含む新しいページをリクエストするときにそれを再利用する方法が必要です。

これは可能ですか?

4

1 に答える 1

1

ログインが成功した後にプリンターが送り返すセッション Cookie を保存し、それ以降のすべての要求に含める必要があります。これを行うオプションを指定してrequest ライブラリを使用できます。{jar: true}チェリオのリクエストには必要なセッション Cookie が含まれないため、URL を直接ロードするのではなく、request を使用してログイン フォームを送信し、次に HTML の次のページをロードするようにリクエストしてから、その HTML を Cheerio に渡すようにしてください。

于 2013-12-10T15:34:34.590 に答える