我正在尝试登录一个非常简单的Web界面。这应该包括输入和提交密码;我不希望需要跟踪cookie,也没有用户名。
网页如下所示,其中包含一个用于POST密码的简单表单:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- saved from url=(0039)http://start.ubuntu.com/wless/index.php -->
<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Wireless Authorisation Page</title>
</head>
<body>
<h1>Title</h1>
<h2>Wireless Access Authorisation Page</h2>
Hello<br>
<form action="http://start.ubuntu.com/wless/index.php" method="POST"><input type="hidden" name="action" value="auth">PIN: <input type="password" name="pin" size="6"><br><input type="submit" value="Register"></form>
<h3>Terms of use</h3><p>some text</p>
</body>
</html>
我尝试使用urllib和urllib2进行以下操作:
import urllib
import urllib2
URL = "http://start.ubuntu.com/wless/index.php"
data = urllib.urlencode({"password": "verysecretpasscode"})
response = urllib2.urlopen(URL, data)
response.read()
这没有用(返回相同的页面并且登录失败)。我哪里可能出错?
答案 0 :(得分:3)
表单有两个命名的输入字段,您只发送一个:
<form action="http://start.ubuntu.com/wless/index.php" method="POST">
<input type="hidden" name="action" value="auth">
PIN: <input type="password" name="pin" size="6"><br>
<input type="submit" value="Register">
</form>
第二个名为pin
,而非password
,因此您的数据字典应如下所示:
{"pin": "verysecretpasscode", "action": "auth"}
答案 1 :(得分:1)
您可能想尝试使用requests
之类的内容这允许你
import requests
print(requests.post(url, data={"password": "verysecretpasscode"}))