2

Python 3.2.3 を使用して、いくつかの Web サイトにログインし、ソースを隠しページからファイルに保存しようとしています。ログイン方法に行き詰まっています。特定の Web サイトにログインする方法はわかりましたが、他の Web サイトでは機能していないようです。ログインしようとしている Web ページのソースは次のとおりです。

<form id="login_form" name="login_form" action="https://www.o2online.ie/amserver/UI/Login?org=o2ext&goto=%2F%2Fwww.o2online.ie%2Fo2%2Fmy-o2%2F" method="post">
                                    <p id="form_header">My Account login</p>
                                    <input value="Go" type="hidden" name="IDButton" id="IDButton"/>
                                    <input value="o2ext" type="hidden" name="org" id="org"/>
                                    <input value="TRUE" type="hidden" name="CONNECTFORMGET"/>
                                    <label for="IDToken1">Username</label><br />
                                    <input tabindex=1 type="text" id="IDToken1" name="IDToken1" value="Username/mobile" onclick="javascript: this.value='';" maxlength="60"  onfocus="this.value='';" tabindex=1 /><br />
                                    <br />
                                    <label for="IDToken2">Password</label><br />
                                    <input tabindex=2 type="password" id="IDToken2" name="IDToken2" value="" maxlength="30"  onfocus="this.value='';" tabindex=2 />
                                    <input tabindex=3 type="image" src="../images/my-o2/Login-button.png" id="submit_button" />
                                </form>

私が正常にログインした他のページには、特定の値の送信ボタンがありましたが、この Web ページには値のない送信ボタンの画像があります。

私が使用しているコードは次のとおりです。

import urllib.request
import urllib.parse
import http.client
import sys

url = 'http://www.o2online.ie/o2/login/'
login_data = {
             'IDToken1': 'xxxx',
             'IDToken2': 'xxxx',
             #'submitbutton': 'submit'                           
             }

# creating an opener object that will handle the cookies
opener = urllib.request.build_opener(urllib.request.HTTPCookieProcessor)

r = opener.open(url, urllib.parse.urlencode(login_data).encode())

# logged in

#Opening and saving source to a file
f = opener.open('http://www.o2online.ie/o2/my-o2/')
sys.stdout = open('file.html', 'w')
print (f.read(999999))

送信ボタンをコメントアウトしました。

このコードを変更して、この Web サイトにログインできますか?

Python でこのフォームをどのように送信しますか?

4

0 に答える 0