ホームページ  >  記事  >  バックエンド開発  >  Cookieの導入と模擬ログインのデモンストレーション

Cookieの導入と模擬ログインのデモンストレーション

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼転載
2019-06-05 17:09:272970ブラウズ

Cookie私たちの生活に密着しているともいえる、タオバオで買い物をする際におすすめされる商品は、まさにCookieの代表作です。

前回の記事では Selenium PhantomJs の基本操作を説明しましたが、今回は Cookie の紹介と模擬ログインのデモをお届けします。

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 サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。