Pythonの爬虫類ノート[A]シミュレートユーザーがログインフォームが送信されるアクセス - 二回目(7)

あなたが最初にこの問題、ページ検証異なるコードに署名し、必要な識別コードの問題をダウンロードする際に遭遇した、オンライン検索は、コードの同期の問題と呼ばれていると述べました。クッキーを導入するクッキーがテストされたタイムスタンプの同期化によって達成し、検証コードページと最後のクッキーと開いた同じであることができることを、クッキーで解決されることが判明。ログインはその後、我々はクッキーをバインドすることができ、バックエンドサーバーにフォームを送信された後、署名するフォームを送信する(リクエストのタイムスタンプポスト要求と認証コード認証コードは、検証コードの同期を解決するために、同じである)ので、以下のこの方法を導入する(もちろん、この方法では解決されません)。その理由はほとんどクラッシュ。また、最初のコードの問題の後。

 

インポートhttp.cookiejar
 インポートurllibは
 インポートの再

#のコードページを取得し、それがSRCです。
= CaptchaUrl HTTP://xxxxxxxxxxxxxxValidateCode.aspx 
#の詳細は、見る前にPOSTリクエストアドレス、ウェブプロパティが2形3のために、することによって得ることができる 
posturl = :xxxxxxxxxxxxxxxxxxlogin_home.aspx HTTP 
#はオープナークッキーにクッキーをバインド自動的に管理cookielib 
クッキー= http.cookiejar.CookieJar()
ハンドラ = urllib.request.HTTPCookieProcessor(クッキー)
オープナー = urllib.request.build_opener(ハンドラ)
 #のユーザー名とパスワード 
=ユーザー名を' XXXXXXX '
パスワード = ' XXXXXXX ' 
OPENRアドレスアクセスコードと、クッキーの取得 
IMG = opener.open(CaptchaUrl).read()
ローカルコードに保存 
LOCATION =オープン(' ./easy_code/checkcode.jpg '' WB ' 
location.write(IMG)
location.close() 
保存された画像入力検証コードを開いて、ここにあなたがたTesseract-オーク認識に切り替えることができますが、まだ始まったばかりのテストまたは上の識別機能の前に、個人を特定できる正確なポイントを使用 
入力= SECRETCODE(コードを入力:捕捉構成情報がF12ネットワーク取得を介してネットワークを形成し、以下に示すことになる 
POSTDATA = {
 __VIEWSTATEを'/ wEPDwUKMTAzNTIzMjg1NWRk ' ' __EVENTVALIDATION '' / wEdAAIKtHwTirT2Pt1uwYfKvQ1EZ5IuKWa4Qm28BhxLxh2oFA == ' ' txt_asmcdefsddsd ' :ユーザ名、
 ' txt_pewerwedsdfsdff ' :パスワード、
 ' txt_sdertfgsadscxcadsad ' :SECRETCODE、
} 根据抓包信息构造ヘッダー 
ヘッダー= {
 ' 受け入れる'' 文字/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 言語を受け入れます"
' 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 ' ' 受け入れエンコードを'' GZIP 、収縮させる' ' Content-Typeの'' アプリケーション/ x-www-form-urlencodedで' ' ユーザーエージェント'' Mozillaの/ 5.0(Windows NTの10.0; Win64の、x64の、RV:70.0)のGecko / 20100101 Firefoxの/ 70.0 ' 
} 生成後数据の 
データ= urllib.parse.urlencode(POSTDATA).encode(符号化= ' UTF8 '設定されている要求要求 
要求=
urllib.request.Request(posturl、データ、ヘッダ)
 ページはGB2312のエンコーディングであるので、復号化する必要がある 
応答を= opener.open(要求)
の結果 = response.read()。(デコード' GB2312を' ログを印刷した後ページの
印刷(結果)

上記の情報は、ポストを検索する>フォームにF12を介してネットワークを取得することができる(あなただけのフォームを提出する必要があること)>パラメータ

__VIEWSTATEと __EVENTVALIDATION任意の2つのパラメータに記入する必要がある、またはエラーとなり、残りはアカウントのパスワードの検証コードであります

 

ポップアップ上記コードIは、エラーメッセージオブジェクトの参照オブジェクトのインスタンスに設定されていない。問い合わせは、パラメータは、いくつかのテストがfgfggfdgtyuuyyuuckjg値の変化であることを見出した後、充填し、次いでHTMLでその位置を見つけていないと述べた際に実行した後それは我々が直接、それは不可能出発JSで、POSTリクエストでログインしているため、null値は、パスワードの入力をクリックすると、その値がパスワードを変更従いますが、また、あなたがこの番号を入力するたびに生成されますの始まりは、異なっていることがわかりました(連絡してください解決するための兄があるかどうか私にはわからないことが考えのコース)取得の値。だから、もちろん、上記の方法は、コードの同期のために、絶対に実現可能であることを冷却するために、この方法は、あなたがこのサイトは父のポストセットをピットインしない署名したいことを提供し、利用可能です。私は見つけられませんでした前に、この質問への回答ではクッキーの方法、次のプレゼンテーションの種類があります。

 

 

参考ギャング記事

使用したサインポストの要求:http://www.cppcns.com/jiaoben/python/140695.html

__EVENTVALIDATIONなしパラメータエラーの理由:https://www.cnblogs.com/Tony_2009/archive/2009/06/15/1503780.html

POSTリクエストのアイデアの三種類:https://blog.csdn.net/qq_18698003/article/details/51591346

おすすめ

転載: www.cnblogs.com/dfy-blog/p/11566614.html