0

python urllib2 を使用して、そのように設定された Web サイトにログインするにはどうすればよいでしょうか。

以下は、フォームと送信時の JavaScript ハンドラです。これをpythonでどのように処理しますか?

<script>

function handleLogin() {document.login.un.value = document.login.username.value;document.login.width.value = screen.width;document.login.height.value = screen.height;}

</script>

以下は、ポストとして送信するすべてのコンポーネントを含む html フォームです。私を支えているのは onsubmit 関数です。

<form id='login' name='login' method='post' onsubmit="handleLogin();" action='login.php'>

<input class="txtbox glow" type="text" id="username" name="username" value="blanksss">

<input class="txtbox glow" type="password" id="password" name="pw" size="18" autocomplete="off" onkeypress="checkCaps(event)">

<input class="checkbox" type="checkbox" id="rememberUn" name="rememberUn" checked="checked">

<input class="loginButton" type="submit" id="Login" name="Login" value="Login">

</form>

私が持っているPythonコードは、JavaScriptなしで簡単なサイトで動作します:

cj = cookielib.CookieJar()
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
opener.addheaders.append(('User-agent', 'Mozilla/4.0'))
opener.addheaders.append( ('Referer', 'https://login.site.com/') )
login_data = urllib.urlencode({'username' : 'mylogin',
                               'pw' : 'mypass',
                               'Login' : 'Login',
                               'rememberUn' : 'checked'
                               })
resp = opener.open('https://login.site.com/', login_data)
website = opener.open('https://eu1.site.com/a03/o')

bowl = BeautifulSoup(website)

JavaScriptコードを処理して、完成した結果をフォームのアクションに投稿する方法について何か考えはありますか?

ありがとう

4

2 に答える 2