1. 基本的な紹介
1. クッキーとは何ですか?
Cookieとは、ユーザーの身元を識別するためにウェブサイトによってユーザーのローカル端末に保存されるデータを指します。簡単に言うと、ユーザーが Web サイトにアクセスしたときに小さなデータがユーザーに送信され、ユーザーは、ユーザーの身元を確認するために、今後 Web サイトにアクセスするときにこのデータを再度提供する必要があります。
2. Cookie を取得するにはどうすればよいですか?
Cookie を取得するには、Python のリクエスト ライブラリが必要です。request は、urllib に基づいて Python で書かれた HTTP クライアント ライブラリであり、Python の標準ライブラリ urllib.request を置き換えることを目的としています。リクエスト ライブラリは、HTTP/1.1 リクエストを簡単に送信できます。Cookie はリクエスト ライブラリを使用して簡単に取得できます。
2. Cookieの取得方法
1.リクエストライブラリを使用してCookieを取得します
インポート リクエスト #ターゲット URL の定義 url = 'http://www.baidu.com' #取得リクエストの送信 r =requests.get(url) #Cookie の取得 cookies = r.cookies #Cookie 値の 印刷 print(cookies)
説明: requests.get() メソッドを使用して Web サイトのアドレスを要求し、r.cookies を使用して対応する Cookie 値を取得します。
2.requests.Session()メソッドを使用してCookieを取得します
import request #ターゲット URL の定義 url = 'http://www.baidu.com' #セッション オブジェクトの作成 s =requests.Session() #取得リクエストの送信 r = s.get(url) #Cookie の取得 cookies = request.utils .dict_from_cookiejar(s.cookies) #Cookie 値を出力 print(cookies)
説明: requests.Session() メソッドを使用して Session オブジェクトを作成します。これにより、Cookie 値が自動的に保持され、後続のリクエストを送信するときに自動的に Cookie を保持できるようになります。Cookie は、requests.utils.dict_from_cookiejar() メソッドを使用して辞書形式に変換できます。
3. Cookie 値を手動で設定する
import request #ターゲット URL を定義します url = 'http://www.baidu.com' #Cookie 値を手動で設定します cookies = {'key':'value'} #Cookie 値を含む get リクエストを送信します r =messages .get(url , cookies=cookies) #cookie 値を出力 print(r.cookies)
説明: Cookie 値を手動で設定した後、requests.get() メソッドを通じて get リクエストを送信し、リクエストヘッダーに Cookie 値を含めます。
3. 応用シナリオ
1. ユーザーログインをシミュレートする
ユーザーがログインすると、サーバーはユーザーを識別するためにユーザーのローカル端末に Cookie を保存します。この時点で、requests.Session() メソッドを使用して Session オブジェクトを作成できます。これにより、後続のリクエストで自動的に Cookie が送信されるように、Cookie 値が自動的に保持されます。投稿リクエストを送信し、ユーザーのログイン情報を送信することで、ユーザーのログインをシミュレートできます。
2. クローラーが Web ページのデータをキャプチャします
一部の Web サイトでは、Cookie の値に基づいてユーザーのアクセス頻度や要求されるデータ量を制限します。クロール時に Cookie を設定しないと、Web サイトによってサービスが拒否される場合があります。現時点では、データをクロールする目的を達成するために、Cookie 値を手動で設定することも、requests.Session() メソッドを通じて Cookie 値を自動的に保存することもできます。
4. 注意事項
1. Cookie を取得するときは、アクセスしたターゲット URL が正しいことを確認する必要があります。
2. Web サイトごとに Cookie の名前と値が異なるため、対象の Web サイトに応じて正しい Cookie 名と値を設定する必要があります。
3. Session オブジェクトを使用する場合、Session オブジェクトは Cookie の値を自動的に保持するため、セキュリティ上の問題が発生する可能性があるため、注意して使用してください。