pythonselenium操作cookieの実装

HTTPプロトコルはステートレスプロトコルであるため、サーバーがhttpプロトコルを介してクライアントと通信する場合、サーバーはクライアントの情報を記録できません。

この問題を解決するために、CookieとSessionテクノロジーによって実現されています。

クッキーの属性

一般的なCookieの属性は次のとおりです。

ドメイン:ドメイン。現在のCookieが属するドメインまたはサブドメインを示します。

サーバーから返されるSet-Cookieの場合、ドメイン値が指定されていない場合、ドメイン値はデフォルトで、現在送信されているhttp要求に対応するメインドメイン名になります。たとえば、http://www.example.comにアクセスして、名前付きドメイン値のないCookieを返す場合、デフォルトのwww.example.comになります。

パス:Cookieのパスを示します。

有効期限/最大経過時間:Cookieの有効期間を示します。有効期限の値は時間です。この時間が経過すると、Cookieは無効になります。または、max-ageを使用して、現在のCookieが期限切れになるまでの時間を指定します。サーバーから返されたCookieで有効期限が指定されていない場合、Cookieの有効期間は現在のセッション、つまり現在のセッションの終了後に期限切れになるセッションCookieのみであることを意味します。同様に、ページが(ブラウザで)閉じられると、Cookieはブラウザによって削除される必要があります。

セキュア:Cookieがhttpsを使用してのみ送信できることを示します。通常、認証情報を含むCookieに使用されます。このCookieの送信を要求する場合は、httpsを使用して送信する必要があります。

httponly:このCookieをhttpまたはhttps送信に使用する必要があることを示します。これは、javascriptなどのブラウザスクリプトがこのCookieにアクセスして操作することを許可されていないことを意味します。

クッキーを取得する

# BaiduホームページからBaiduアカウントにログインし、Cookieを取得します
from selenium import webdriver
from time import sleep
import json
 
# chomeブラウザーを起動し、Baiduのホームページにアクセスします
option=webdriver.ChromeOptions()
option.add_argument('--start-maximized')
drive=webdriver.Chrome(options=option)
drive.get('http://www.baidu.com')print(drive.title)
 
# クリックしてログイン」
eled=drive.find_element_by_link_text("ログインする")
eled.click()sleep(2)
 
# 「ユーザー名ログイン」をクリックします
namelogin=drive.find_element_by_css_selector('p.tang-pass-footerBarULogin')
namelogin.click()sleep(2)
 
# ユーザー名、パスワードを入力してログインします
username = drive.find_element_by_id('TANGRAM__PSP_10__userName')
username.send_keys('********')sleep(1)
 
password = drive.find_element_by_id('TANGRAM__PSP_10__password')
password.send_keys('********')sleep(1)
 
submit = drive.find_element_by_id('TANGRAM__PSP_10__submit')
submit.click()sleep(3)
 
# ウェブサイトのCookieを取得する
diccookie=drive.get_cookies()
fw=open('baiducookie.txt','w')
json.dump(diccookie,fw)
fw.close()

ハードディスクからCookieを読み取り、リクエスト送信サーバーに追加します。

import time
import json
 
chomeブラウザーを起動し、Baiduのホームページにアクセスします
option=webdriver.ChromeOptions()
option.add_argument('--start-maximized')
drive=webdriver.Chrome(options=option)
 
drive.get('http://www.baidu.com')print(drive.title)
 
fr=open('baidu_cookie.txt','r')
cookielist=json.load(fr)
fr.close()for cookie in cookielist:
 drive.add_cookie(cookie)sleep(5)
drive.get('http://www.baidu.com')
drive.refresh()

Cookieを介してBaiduにログインできませんでした:

Message: unable to set cookie
Message: invalid argument: invalid ‘expiry’

これまで、python selenium operation cookieの実装に関するこの記事を紹介しました。関連するpythonselenium operation cookieの内容については、ZaLou.Cnの以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後、ZaLou.Cnをさらにサポートしていただければ幸いです。 !

Recommended Posts

pythonselenium操作cookieの実装
word2vec操作のPython予備実装
gomokuプログラムのPython実装
Pythonプラグインメカニズムの詳細な実装
pythonリストの逆トラバーサルの実装
IOU計算ケースのPython実装
python3登録グローバルホットキーの実装
python学生管理システムの実装
python操作redisのいくつかの例
pythonアクセスAlipayの操作例
python勾配降下アルゴリズムの実装
python accesshdfsの操作
Pythonタートルライブラリ実装の基本的な分析
pythonでのJWTユーザー認証の実装
交差点のPython実装とIOUチュートリアル
Pythonクラスの動的バインディングの実装原則
Python3.9の7つの機能
Pythonファイル操作
python操作kafka
Python操作の一般的なメソッドの分析Jiraライブラリ
ファイルをダウンロードするためのPythonヘッドレスクローラーの実装
AI自動マットサンプル分析のPython実装
手描き効果の例の共有のPython実装
pythonによる名刺管理システムの実装
Pythonで実装された特徴抽出操作の例
Pythonは釣りマスターのゲーム実装を書きます
pythonに基づく名刺管理システムの実装
Pythonインターフェース開発の実装手順の詳細な説明
Python構文の基本
Python操作SQLiteデータベース
Pythonの基本構文
Pythonの基礎知識(1)
pythonのPrettytableモジュール
Python操作yaml命令
09.Python3の共通モジュール
Pythonのハードコア操作を1分で学ぶ
Pythonの自動操作とメンテナンス2
Pythonの基盤を統合する(4)
Python操作Excelマージセル
Python(7)の基盤を統合する
pythonリスト(LIST)の深い理解
Pythonのタプルの添え字
wavファイルのPython分析
Python(6)の基盤を統合する
Python描画ローズ実装コード
Pythonの負の弾性率の操作例
PythonクローラーのJSの分析
栄光のパイソンキング壁紙
Python(5)の基盤を統合する
Pythonサンドボックスエスケープの分析
Python3.10のいくつかの新機能
Pythonマルチスレッドの深い理解
Pythonの自動操作とメンテナンス1
Pythonオブジェクト指向プログラミングの分析
CentOS8.0ネットワーク構成の実装
OpenCVインストールのPythonバージョン
クイックスタートPythonファイル操作
PythonGUIシミュレーション実装計算機
pythonクローラー用のSeleniumビジュアルクローラー
Pythonの9つの機能エンジニアリング手法
python描画モジュールのmatplotlib