リクエストはPython3.6クッキーの下でPython3.6の下でのログインクッキーを使用してログインし、ログインを要求し、ログインを使用します

リクエストは、ログインして、Python3.6にログインするためにクッキーを使用します

 

Pythonモジュールの使用はポスト、などの送信などの機能を取得し、I Webサイトにログオン要求を達成することができ、例えば、レコードは、ユーザー名、パスワード、およびグラフィカルなポストを用いた検証コードと同様に、直接ログインすることによりクッキーの内容を送信します。

1. POSTを使用すると、ユーザ名、パスワード、確認コードを送信します。ここには識別コードの確認、検証テスト画像は、手動入力を読み取ることがなかったです。

コードをコピー
1 DEF LoginByPost():
 2 imgUrl = 'HTTP://***/authcode.php' 
 3つのS = requests.session()
 4つのRES = s.get(imgUrl、ストリーム= TRUE)
 5 IM = Image.open( BytesIO(res.content))
 6 im.show()
 7コード=入力()
 8 loginUrl = 'HTTP://***/admin_loginCheck.php' 
 9 POSTDATA = { 'PNAME': '管理者'、 'パスワード' : '***'、 'validateCode':コード} 
10、RS = s.post(loginUrl、POSTDATA)
11 URL = 'HTTP://***/***/admin_honor.php' 12のRES = s.get (URL)
13 res.encoding = 'UTF-8'
14プリント(res.text)

コードをコピー

この時点で、我々は指定されたページの内容を正常にログインし、出力していることがわかります。

2.クッキーは、直接ログイン。いいえユーザー名ません、パスワードや認証コード。この時点で、あなたは一つの方法は、ブラウザを介して見ているクッキー、クッキーをログインした後、サイトを取得する必要があり、別の方法は、上記requests.sessionは、ログイン後にクッキーを取得使用することです。私たちの第二のアプローチ。

(1)requests.sessionによってクッキーを得ます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def  GetCookie():
     imgUrl = 'http://***/authcode.php'
     s = requests.session()
     print (s.cookies.get_dict()) #先打印一下,此时一般应该是空的。
     res = s.get(imgUrl,stream = True )
     im = Image. open (BytesIO(res.content))
     im.show()
     code = input ()
     loginUrl = 'http://***/admin_loginCheck.php'
     postData = { 'pname' : 'admin' , 'password' : '***' , 'validateCode' :code}
     rs = s.post(loginUrl,postData)
     c = requests.cookies.RequestsCookieJar() #利用RequestsCookieJar获取
     c. set ( 'cookie-name' , 'cookie-value' )
     s.cookies.update(c)
     print (s.cookies.get_dict())

 (2)クッキーの真上で取得したログを使用して

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
def  DirLogin():
     s = requests.session()
     url = 'http://***/***/admin_honor.php'
     headers = {
     'Accept' 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' ,
     'Accept-Encoding' 'gzip, deflate' ,
     'Accept-Language' 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2' ,
     'Cache-Control' 'max-age=0' ,
     'Connection' 'keep-alive' ,
     'Host' '***' ,
     'Referer' 'http://***/***/admin_index.php'
     }
     cookies = { 'PHPSESSID' 'cnguud4r1hmn3passs906odp21' } #这里就是利用上面的函数获得的Cookies
     rs = s.get(url,headers = headers,cookies = cookies,verify = False )
     rs.encoding = 'utf-8'
     print (rs.text)

 この時点で、あなたは直接必要なページの内容を表示することができます。

説明:蘭と卵、あなたは、それがクッキーを通じて直接ログイン時に役に立たない、と便利な場合があります。このサイトでは理由は、サーバー側のセッションは、その後、それは時間である場合、サーバはこのセッションを削除します、セッションの時間制限を設定する傾向がある一方で、あなたは再びクッキーを最初の関数を使用する必要があり、クライアント・セッションの判断にサーバによって行われます買収。

Pythonモジュールの使用はポスト、などの送信などの機能を取得し、I Webサイトにログオン要求を達成することができ、例えば、レコードは、ユーザー名、パスワード、およびグラフィカルなポストを用いた検証コードと同様に、直接ログインすることによりクッキーの内容を送信します。

1. POSTを使用すると、ユーザ名、パスワード、確認コードを送信します。ここには識別コードの確認、検証テスト画像は、手動入力を読み取ることがなかったです。

コードをコピー
1 DEF LoginByPost():
 2 imgUrl = 'HTTP://***/authcode.php' 
 3つのS = requests.session()
 4つのRES = s.get(imgUrl、ストリーム= TRUE)
 5 IM = Image.open( BytesIO(res.content))
 6 im.show()
 7コード=入力()
 8 loginUrl = 'HTTP://***/admin_loginCheck.php' 
 9 POSTDATA = { 'PNAME': '管理者'、 'パスワード' : '***'、 'validateCode':コード} 
10、RS = s.post(loginUrl、POSTDATA)
11 URL = 'HTTP://***/***/admin_honor.php' 12のRES = s.get (URL)
13 res.encoding = 'UTF-8'
14プリント(res.text)

コードをコピー

この時点で、我々は指定されたページの内容を正常にログインし、出力していることがわかります。

2.クッキーは、直接ログイン。いいえユーザー名ません、パスワードや認証コード。この時点で、あなたは一つの方法は、ブラウザを介して見ているクッキー、クッキーをログインした後、サイトを取得する必要があり、別の方法は、上記requests.sessionは、ログイン後にクッキーを取得使用することです。私たちの第二のアプローチ。

(1)requests.sessionによってクッキーを得ます。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
def  GetCookie():
     imgUrl = 'http://***/authcode.php'
     s = requests.session()
     print (s.cookies.get_dict()) #先打印一下,此时一般应该是空的。
     res = s.get(imgUrl,stream = True )
     im = Image. open (BytesIO(res.content))
     im.show()
     code = input ()
     loginUrl = 'http://***/admin_loginCheck.php'
     postData = { 'pname' : 'admin' , 'password' : '***' , 'validateCode' :code}
     rs = s.post(loginUrl,postData)
     c = requests.cookies.RequestsCookieJar() #利用RequestsCookieJar获取
     c. set ( 'cookie-name' , 'cookie-value' )
     s.cookies.update(c)
     print (s.cookies.get_dict())

 (2)クッキーの真上で取得したログを使用して

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
def  DirLogin():
     s = requests.session()
     url = 'http://***/***/admin_honor.php'
     headers = {
     'Accept' 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' ,
     'Accept-Encoding' 'gzip, deflate' ,
     'Accept-Language' 'zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2' ,
     'Cache-Control' 'max-age=0' ,
     'Connection' 'keep-alive' ,
     'Host' '***' ,
     'Referer' 'http://***/***/admin_index.php'
     }
     cookies = { 'PHPSESSID' 'cnguud4r1hmn3passs906odp21' } #这里就是利用上面的函数获得的Cookies
     rs = s.get(url,headers = headers,cookies = cookies,verify = False )
     rs.encoding = 'utf-8'
     print (rs.text)

 この時点で、あなたは直接必要なページの内容を表示することができます。

説明:蘭と卵、あなたは、それがクッキーを通じて直接ログイン時に役に立たない、と便利な場合があります。このサイトでは理由は、サーバー側のセッションは、その後、それは時間である場合、サーバはこのセッションを削除します、セッションの時間制限を設定する傾向がある一方で、あなたは再びクッキーを最初の関数を使用する必要があり、クライアント・セッションの判断にサーバによって行われます買収。

おすすめ

転載: www.cnblogs.com/durcaidurcai/p/11446510.html