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