Rhy*_*hys 7 python post urllib python-3.x
我想编写一个Python脚本来自动登录我的宽带使用率计帐户.我之前从未做过POST提交,而且我遇到了一些问题.
import urllib.request, urllib.parse, urllib.error
import socket
try:
details = urllib.parse.urlencode({ 'IDToken1': 'USERNAME', 'IDToken2': 'PASSWORD' })
url = urllib.request.Request('https://login1.telecom.co.nz/distauth/UI/Login?realm=XtraUsers&goto=https%3A%2F%2Fwww.telecom.co.nz%3A443%2Fjetstreamum%2FxtraSum%3Flink%3Drdt', details)
url.add_header("User-Agent","Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.29 Safari/525.13")
responseData = urllib.request.urlopen(url).read().decode('utf8', 'ignore')
responseFail = False
except urllib.error.HTTPError as e:
responseData = e.read().decode('utf8', 'ignore')
responseFail = False
except urllib.error.URLError:
responseFail = True
except socket.error:
responseFail = True
except socket.timeout:
responseFail = True
except UnicodeEncodeError:
print("[x] Encoding Error")
responseFail = True
print(responseData)
Run Code Online (Sandbox Code Playgroud)
从我导出的HTML IDToken1
是用户名id,IDToken2
是密码id.
这是我的问题:
当我输入正确的用户名和密码时,登录页面会加载,但是:
当我输入错误的用户名或密码时,我会看到一个页面:
此服务器遇到内部错误,导致无法完成您的请求.最可能的原因是配置错误.请让管理员在服务器的错误日志中查找消息.
小智 8
details = urllib.parse.urlencode({'IDToken1': 'USERNAME', 'IDToken2': 'PASSWORD'})
Run Code Online (Sandbox Code Playgroud)
添加以下行:
details = details.encode('UTF-8')
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
16157 次 |
最近记录: |