学ぶ教科書「Pythonのネットワーク・データの収集」、この本のためのコードのほとんど。
リクエストヘッダの処理を完了、クッキーの値は、ユーザと機械との間で区別するための方法です。だから我々は、要求モジュールを必要とする騒ぎが出て開くものをクッキーに対処する必要があります。
Pythonは一般に、クッキー1を変更します
まず、クッキーを取得
インポート要求 のparams = { 「ユーザ名」:「ライアン」、「パスワード」:「パスワード」}#辞書、ユーザ名とパスワード、ホストで要求を設定し、ほぼ R&LT = requests.post(" http://pythonscraping.com /pages/cookies/welcome.php " のparams) 印刷(" SETにクッキーは次のとおりです。" ) を印刷(r.cookies.get_dict())#は、クッキー、および出力を得る 印刷(" --------- - " ) を印刷("ページのプロフィールに行く... " ) 、R = requests.get(" http://pythonscraping.com/pages/cookies/profile.php 」、クッキー = r.cookies)#发送クッキー プリント(r.text)
変更のクッキー2.
サイトは、あなたがより複雑に直面している場合、それはしばしば密かにクッキーを調整している、またはあなたが最初からクッキーを使用したくない場合は、セッション要求は、ライブラリは、これらの問題を解決することができる機能します。
インポート要求の
セッション = requests.Session() のparams = { ' ユーザ名':' ユーザー名'、' パスワード':' パスワード' } 、S = session.post(" http://pythonscraping.com/pages/cookies/welcome.php "paramsは) 印刷が(" クッキーに設定されている:" ) プリント(s.cookies.get_dict()) プリント(" ----- 」) プリント(" ページをプロファイルするために行く... " ) 、S = session.get(" http://pythonscraping.com/pages/cookies/profile.php " ) プリント(s.text)
上記のコードは、セッションの都合にあるクッキーの値を設定しません。セッション(セッション)オブジェクト(requests.Session()取得を呼び出す)、このようなクッキー、ヘッダ、及びHTTPプロトコルの実行についても情報、HTTPアダプタとして、セッション情報を追跡する(HTTPに均一なインタフェースを提供し、HTTPSセッションをリンク)
スクリプトによって生成3.クッキーベースのユーザ操作
要求モジュールは、JavaScriptを実行することはできませんので、それは、このようなGoogleアナリティクス、スクリプトはクッキー(Cookieまたはユーザーがページを閲覧する際に生成されたWebベースのイベントを設定した後に実行された場合にのみ、クライアントとしてのCookie追跡ソフトウェアの新世代の多くを扱うことができないので、ボタンのクリックなど)。これらのアクションに対処するには、(phantomJSパッケージは、寒されている代わりに、FirefoxやGoogleのを使用することができます)セレン及びPhantomJSパッケージを使用する必要があります
(1)クッキーを取得します
セレンインポートwebdriverを
ドライバが = webdriver.Firefox() driver.get(" https://www.bilibili.com/ " ) driver.implicitly_wait( 1 )
プリント(driver.get_cookies())
(2)コールdelete_cookie()、add_cookie()およびクッキーに対処するdelete_all_cookies()メソッド
また、クッキーは、将来の使用の他のWebクローラー用に保存することができます。次の例では、これらの機能を組み合わせる方法を示しています。
セレンインポートwebdriverを用
ドライバ = webdriver.Firefox()
driver.get(" http://pythonscraping.com " )
driver.implicitly_wait( 1 )プリント(driver.get_cookies())
savedCookies = driver.get_cookies()
DRIVER2 = webdriverを。Firefoxの()
driver2.get(" http://pythonscraping.com " )
driver2.delete_all_cookies()
のためにクッキーでsavedCookies:
driver2.add_cookie(クッキー)
driver2.get(" http://pythonscraping.com " )
driver.implicitly_wait ( 1 )
印刷(driver2.get_cookies())
この例では、最初のwebdriverをウェブサイト、印刷を取得し、クッキー変数savedCookies年に保存します。ウェブサイトをロード二webdriverを(テクニカルノート:あなたが最初のサイト、サイトの負荷の動作は、我々はすべての用途を持っていなかった場合でも、属するサイトを知るために、このクッキーのセレンをロードする必要がありますが)、クッキーを全て削除してから、最初のwebdriverをを置き換えます結果のクッキー。ページを再度読み込むと、2つのクッキータイムスタンプ、ソースコードやその他の情報はまったく同じでなければなりません。Googleアナリティクスの視点、まったく同じになりました第2及び第1 webdriverをするwebdriverを。