Cookie私たちの生活に密着しているともいえる、タオバオで買い物をする際におすすめされる商品は、まさにCookieの代表作です。
前回の記事では Selenium PhantomJs の基本操作を説明しましたが、今回は Cookie の紹介と模擬ログインのデモをお届けします。
#Cookie とは何ですか?
コンピュータ用語では、Web サイト サーバーがクライアントのハード ドライブまたはメモリに少量のデータを保存したり、データを読み取ったりできるようにする方法を指します。クライアントのハードドライブからのテクノロジー。
Chrome の開発者ツール (F12) を開き、[ネットワーク] をクリックし、リクエスト URL をクリックすると、リクエスト ヘッダー (リクエスト ヘッダー) に Cookie 情報が表示されます。もちろん、上記の応答ヘッダーから Set-Cookie 情報を確認できます。これは、Cookie の範囲や時間など、ブラウザーに Cookie を設定するサーバーに関する情報です。Cookie の目的
ユーザーがログインしているかどうかを判断するためにユーザーのログイン情報を保存し、ユーザーの閲覧の足跡を保存します。Cookie は、サーバー上のクライアント情報。この情報はサーバーによって生成され、サーバーによって解釈されます。 リクエストを行うとき、クライアントは時間制限のない Cookie をサーバーに送信する必要があります。サーバーは Cookie を解析してユーザー情報を判断する必要があります。 当社のブラウザは、Web を閲覧するたびに自動的に Cookie を保存します。たとえば、ブラウザの閲覧履歴を開くと、Cookie 情報が保存されます。 Cookie は私たちに多くの利便性をもたらし、閲覧の足跡やページの滞在時間を記録することもできます。たとえば、あなたが淘宝網に夢中になっている場合、あなたが閲覧した製品を取得するための Cookie に基づいて、好みの製品に関する淘宝網の推奨事項が生成されます。模擬ログインのデモ
Zhihu を例に挙げてみましょう。 https://www.zhihu.com/people/yu-kun-73/answersこの URL は私の Zhihu 情報ページです。もちろん、自分の Zhihu ページを例として使用することもできます。直接訪問すると上にログインボタンが表示されますが、すでにログインしてアクセスしています。ログイン ボタンは表示されませんが、個人編集プロファイルへのリンクがいくつか表示されます。 それでは、クローラーを使ってアクセスしてみるとどうでしょうか。import requests headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36' } url = 'https://www.zhihu.com/people/yu-kun-73/answers' resp = requests.get(url, headers=headers).text print(resp)印刷結果を見ると、HTML コードにログイン ボタンがあることがわかります。これは、このページにログインしていないことを証明します。したがって、データをクロールするためにログイン アカウントが必要な一部の Web サイトをクロールする場合は、ログインの問題を解決する必要があります。それでは、ログインを実装する方法を説明します。 答えは Cookie です。前回の記事で、リクエスト ライブラリは Cookie を処理する際に非常にシンプルであると述べました。 「User-Agent」を追加したのと同じように、リクエスト Cookie を追加するだけです。
import requests headers = { 'Cookie': # 你的登录过后的浏览器cookies, 'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36' } url = 'https://www.zhihu.com/people/yu-kun-73/answers' resp = requests.get(url, headers=headers).text print(resp)印刷情報をもう一度見ると、個人情報を編集するためのリンクが表示されます。これは、ログインに成功したことを意味します。とても簡単なことではありませんか? 心配しないでください。難しい部分は後ほど説明します。 #########やっと######
したがって、情報を取得するためにログインが必要な新浪微博などの複雑な Web サイトにログインする場合、Cookie を使用してログインすることは間違いなく機能しません。これらの Web サイトでは一部の Web サイトのアルゴリズムが頻繁に更新されるため、しばらくすると Cookie が期限切れになるため、これらの Web サイトのログイン ページにログイン情報を投稿する必要があります。
これらのログイン情報パラメータは通常、ログインページのリクエストヘッダー下のフォームデータに格納されており、この情報を投稿するだけでスムーズにログインできます。しかし、認証コードが表示されると非常に面倒です。クローラーをテストする場合、常に検証コードの問題が関門となりますので、自分で勉強してみましょう。
以上がCookieの導入と模擬ログインのデモンストレーションの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。