ホームページ >バックエンド開発 >Python チュートリアル >Python は Srapy フレームワーク クローラーを使用してログインをシミュレートし、Zhihu コンテンツをクロールします
1. クッキーの原則
HTTPはステートレスな接続指向プロトコルであり、接続状態を維持するためにCookieメカニズムが導入されています
。
Cookie は http メッセージ ヘッダーの属性であり、次のものが含まれます:
最初の 2 つのパラメータは、Cookie の適用に必要な条件です。さらに、Cookie のサイズも含まれます (サイズ、ブラウザごとに Cookie の数とサイズの制限が異なります)。
2. 模擬ログイン
今回クロールしたメインWebサイトはZhihuです
Zhihu をクロールするにはログインする必要があります。以前の組み込み Python ライブラリを通じて、フォーム送信を簡単に実装できます。
それでは、Scrapy を介してフォーム送信を実装する方法を見てみましょう。
まずはログイン時にフォームの結果を確認します。先ほどの手法と同様に、意図的に間違ったパスワードを入力し、ログインページのヘッダーとフォームをキャプチャしました(Chrome付属の開発者ツールのネットワーク機能を使用しました)
キャプチャされたフォームを見ると、4 つの部分があることがわかります:
私たちの推測が正しかったかどうかを確認してください
これでフォームログイン関数を書くことができます
主な機能は機能のコメントで説明しています
3. クッキーの保存
同じ状態を使用してウェブサイトを継続的にクロールするには、Cookie を保存し、Cookie を使用して状態を保存する必要があります。Scrapy は、直接使用できる Cookie 処理ミドルウェアを提供します。
この Cookie ミドルウェアは、Web サーバーによって送信された Cookie を保存および追跡し、次のリクエストでこの Cookie を送信します
Scrapy の公式ドキュメントには次のコード例が記載されています:
リーリー
4. 頭を変装する
Web サイトにログインするには、ホットリンクを防ぐためのヘッダーの追加やサーバー ログインのシミュレートなど、ヘッダーの偽装が必要になる場合があります
保険の場合、次のようにヘッダーにさらに多くのフィールドを入力できます
リーリー
ログイン関数の最終バージョンを形成する
リーリー
Zhihu クローラー コードの完全なリンク
リーリー
詳細な設定については、公式ドキュメントをご覧ください
リーリー
ルール設計では Web サイトの完全なクロールを実現することはできませんが、簡単な質問のクロールのみを設定します