ホームページ > バックエンド開発 > Python チュートリアル > Python は Socket (Https) Post を使用して Baidu 実装コードにログインします

Python は Socket (Https) Post を使用して Baidu 実装コードにログインします

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-16 08:47:05
オリジナル
2128 人が閲覧しました

Baidu にログインするには、まず Baidu ログイン パッケージをキャプチャします。これは Web ページのログインなので、最も便利なのは httpwatch です。使用したテスト アカウントは itiandatest1、パスワードは itianda です。パケット キャプチャの結果は次のとおりです:

コードをコピー コードは次のとおりです:

POST /?login HTTP /1.1
受け入れる: image/jpeg、application/x-ms-application、image/gif、application/xaml+xml、image/pjpeg、application/x-ms-xbap、application/vnd.ms-excel、application /vnd.ms-powerpoint, application/msword, */*
リファラー: https://passport.baidu.com/?login&tpl=mn
Accept-Language: zh-CN
User-Agent: Mozilla/4.0 (互換性; MSIE 7.0; Windows NT 6.1; Trident/ 5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; BOIE9;ZHCN)
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip、deflate
Host:passport.baidu.com
Content-Length: 243
Connection: Keep-Alive
Cache-Control: no-cache

ログイン パッケージがキャッチされました。コードの記述を開始しましょう:

コードをコピーします コードは次のとおりです:

インポート ソケット
インポート ssl
sock = ssl.wrap_socket(socket .socket())

ssl は https モジュールを処理するために特別に使用されます。このモジュールの Wrap_socket 関数を使用して SSLSocket オブジェクトを生成します。

次に接続を確立します:
コードをコピーします コードは次のとおりです:

sock.connect (('passport.baidu.com', 443))

ここで、https はポート 80 ではなくポート 443 を使用することに注意してください。

の後にデータを送信します:

コードをコピー コードは次のとおりです:

data = '''
POST /?login HTTP/1.1
Accept: image/jpeg、application/x-ms-application、image/gif、application/xaml+xml、image/pjpeg、application/x-ms- xbap、application /vnd.ms-excel、application/vnd.ms-powerpoint、application/msword、*/*
リファラー: https://passport.baidu.com/?login&tpl=mn
Accept-Language : zh- CN
ユーザー エージェント: Mozilla/4.0 (互換性; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729 ; メディア センター PC 6.0; .NET4.0E; BOIE9;ZHCN)
コンテンツ タイプ: application/x-www-form-urlencoded
ホスト: パスポート.baidu.com 🎜>コンテンツの長さ: 243
接続: キープアライブ
キャッシュ制御: キャッシュなし
tpl_ok=&next_target=&tpl=mn&skip_ok=&aid=&need_pa​​y=&need_coin=&pay_method=&u=http%3A% 2F%2Fwww .baidu.com%2F&return_method=get&more_param=&return_type=&psp_tt=0&password=itianda&safeflg=0&isphone=tpl&username=itiandatest1&verifycode=&mem_pass=on
'''
sock.sendall(data)

sendall の後に shutdown メソッドを呼び出すことはできないことに注意してください。

残りは通常のソケット処理と変わりません:

コードをコピー コードは次のとおりです:
recv_data = sock.recv(8192)
sock.close()
print recv_data

必要なのは Cookie 情報だけなので、少量のデータを受信するだけで十分です。

ログイン成功の兆候は、サーバーが BDUSS を含む set-cookie を返すことです:


コードをコピー コードは次のとおりです。以下:

HTTP/1.1 200 OK
Set-Cookie: BAIDUID=DB464E1EBA6571FB82D70460D6AAB666:FG=1;最大年齢=946080000;期限切れ=41 年 12 月 11 日水曜日 17:18:17 GMT。ドメイン=.baidu.com;パス=/; version=1
P3P: CP=" OTI DSP COR IVA OUR IND COM "
日付: 月曜日、2011 年 12 月 19 日 17:18:17 GMT
サーバー: Apache
P3P: CP=" OTI DSP COR IVA OUR IND COM "
P3P: CP=" OTI DSP COR IVA OUR IND COM "
P3P: CP=" OTI DSP COR IVA OUR IND COM "
Set-Cookie: BAIDUID=26FD0CB5389BF4699C447982D8080239: FG=1;期限切れ=41 年 12 月 11 日水曜日 17:18:17 GMT。最大年齢=946080000;パス=/;ドメイン=.baidu.com; version=1
セットクッキー: BAIDUID=26FD0CB5389BF4698191E4134CACEA29:FG=1;期限切れ=41 年 12 月 11 日水曜日 17:18:17 GMT。最大年齢=946080000;パス=/;ドメイン=.baidu.com; version=1
セット Cookie: BDUSS=dTajkzWTFWR3hXT3Jsc09LdkNsZ011YlZka340VWtqNkZzbW0tUTdOUFp-aFpQQVFBQUFBJCQAAAAAAAAAAAouTSCLkioVaXRpYW5kYXRlc3QxAAAAAAAAAAAAAAAAAAAAAADgmoV5AAAAAOCahXkAA AAAuWZCAAAAAAAxMC42NS40NNlx707Zce9OWT;期限切れ=2030 年 1 月 1 日火曜日 00:00:00 GMT;パス=/;ドメイン=.baidu.com
Cookie の設定: PTOKEN=16ba4a120f070f3cc759a817981c2516;期限切れ=2030 年 1 月 1 日火曜日 00:00:00 GMT;パス=/;ドメイン=パスポート.baidu.com; HttpOnly
Set-Cookie: STOKEN=fda94395cd4ae4661cefd3a4017a8454;期限切れ=2030 年 1 月 1 日火曜日 00:00:00 GMT;パス=/; Domain=passport.baidu.com
Cookie の設定: USERID=626167789a799e630e60fb27466fa80e;期限切れ=2030 年 1 月 1 日火曜日 00:00:00 GMT;パス=/; Domain=.baidu.com
Content-Type: text/html;charset=gbk
Cache-Control: no-cache
Pragma: no-cache
Content-Encoding: none
コンテンツ-長さ: 850
接続: 閉じる

OK、登録成功。
本文出典: itianda のブログ
関連ラベル:
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート