【发布时间】:2015-05-18 13:32:56
【问题描述】:
我想在 Python 中使用 requests 库填写登录表单。如下所示,字段名称为 username 和 password :
所以我写了下面的脚本:
session = requests.session()
p = session.post("http://192.168.94.1/SubSystem/Portal/Index1/Login/Login2.aspx", {'username':'myUsername','password':'myPassword'})
print 'headers', p.headers
print 'cookies', requests.utils.dict_from_cookiejar(session.cookies)
print 'html', p.text
问题是,当我运行它时,它再次返回登录页面!我的程序有什么问题?
更新:
我也尝试将参数作为数据发送,但没有任何改变。即下面的代码也返回相同的输出:
payload = {'username': 'myUsername', 'password': 'myPassword'}
r = requests.post("http://192.168.94.1/SubSystem/Portal/Index1/Login/Login2.aspx", data=payload)
print(r.text)
更新2:
我使用 Burp Suit 捕获数据包以查看差异:
这是我的浏览器发送的数据包:
POST /SubSystem/Portal/Index1/Login/Login2.aspx HTTP/1.1
Host: 192.168.94.1
Proxy-Connection: keep-alive
Content-Length: 134
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Origin: http://192.168.94.1
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.89 Safari/537.36
Content-Type: application/x-www-form-urlencoded
Referer: http://192.168.94.1/SubSystem/Portal/Index1/Login/Login2.aspx
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.8
Cookie: ASP.NET_SessionId=nntwluu5uhrldzuymsv333uc; CURRENT_LANGUAGE_2=fa
__VIEWSTATE=%2FwEPDwUKMTY5ODAzNzY1MmRkpL4TXtJfODqn0yxypIJaOzkl4YUWynT8urN%2BYYXM%2FnY%3D&Command=LOGIN&username=myUsername&password=myPassword
这是第二个 Python 脚本发送的数据包:
POST /SubSystem/Portal/Index1/Login/Login2.aspx HTTP/1.1
Host: 192.168.94.1
Content-Length: 31
Accept-Encoding: gzip, deflate
Accept: */*
User-Agent: python-requests/2.4.3 CPython/2.7.0 Windows/7
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
username=myUsername&password=myPassword
【问题讨论】:
-
@EsseTi 试过了,没有任何改变。相同的输出。
-
在
.post中你已经完成了payload = {'username': 'myUsername', 'passowrd': 'myPassword'}- 注意错字passowrd? -
@JonClements 我更正了。没有任何改变。谢谢
-
@Jean 好吧,一个区别是浏览器帖子正在发送一个隐藏字段......所以你需要一个
{'Command': 'LOGIN'}添加到你的payload(看看你更新编辑的底线查看正在发送的字段的差异...)
标签: python python-2.7 python-requests