私はこれに数日間取り組んでいます。これを機能させる方法を実際に見つけることができません。私はaspx Webサイトにかなり慣れておらず、それらから情報を取得しています。
aspx ページを使用する Web サイトでログイン/認証しようとしています。だから私はこのスレッドをたどりました。これは、これを動かすのに本当に役立ちました. (最後の回答)
これらの指示に従って、私は次のように書いています。
url = "http://samplewebsite/Main/Index.aspx" # Logon page
username = "user"
password = "password"
browser = RoboBrowser(history=True)
# This retrieves __VIEWSTATE and friends
browser.open(url)
signin = browser.get_form(id='form1')
print(signin)
これは、その print ステートメントの結果です。
<RoboForm __VIEWSTATE=/wEPDwULLTE5ODM2NTU1MzJkGAEFHl9fQ29udHJvbHNSZXF1aXJlUG9zdEJhY2tLZXlfXxYBBQlidG5TdWJtaXRriD1xvrfrHuJ/0xbQM08yEjyoUg==, __VIEWSTATEGENERATOR=E78488FE, adminid=, btnSubmit=, pswd=>
したがって、情報を正しく取得していることは明らかです。今、私は3つの入力フィールドを持っています:
adminid
btnSubmit
pswd
次の方法で使用できます。
signin["adminid"].value = username
signin["pswd"].value = password
signin["btnSubmit"].value = "btnSubmit.x=29&btnSubmit.y=22"
btnSubmit
私の唯一の問題は、これが次のタイプであるため、値を入力する方法がわからない最後のフィールドです。
<input type="image" name="btnSubmit" id="btnSubmit" tabindex="3" src="../image/login_btn.gif" style="height:41px;width:57px;border-width:0px;" />
Chrome ツールを使用して Web サイトに送信すると、次の結果が得られます。
__VIEWSTATE:/wEPDwULLTE5ODM2NTU1MzJkGAEFHl9fQ29udHJvbHNSZXF1aXJlUG9zdEJhY2tLZXlfXxYBBQlidG5TdWJtaXRriD1xvrfrHuJ/0xbQM08yEjyoUg==
__VIEWSTATEGENERATOR:E78488FE
adminid:user
btnSubmit.x:23
btnSubmit.y:15
pswd:password
基本的にx,y
位置は、ページ上でクリックした場所です。Python でこのリクエストを行う方法が本当にわかりません。これを無駄に使用しました。