Python中文
首页
教程
问答
标签
搜索
登录
注册
为什么我不能用Python“请求”库填写这个表单?
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我想用Python中的<code>requests</code>库填写登录表单。如下所示,字段的名称是<code>username</code>和<code>password</code>: <a href="https://i.stack.imgur.com/WrgTU.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/WrgTU.jpg" alt="enter image description here"/></a></p> <p>所以我写了下面的脚本:</p> <pre><code>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 </code></pre> <p>问题是,当我运行它时,它会再次返回登录页面!我的程序怎么了?在</p> <p><strong>更新:</strong></p> <p>我也尝试将参数作为数据发送,但是没有任何改变。i、 e下面的代码也返回相同的输出:</p> ^{pr2}$ <p><strong>更新2:</strong></p> <p>我用<em>打嗝服</em>捕捉数据包,以查看差异:</p> <p>这是我的浏览器发送的数据包:</p> <pre><code>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 </code></pre> <p>这是第二个Python脚本发送的包:</p> <pre><code>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 </code></pre>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>支持@EsseTi的答案,使用data=Payload方法获取它们。在</p> <pre><code>import requests payload = {'id_login': 'UserName', 'id_password': 'Password'} url = #Your URL something = requests.post(url, data=payload) </code></pre>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
无法使用Django/mongoengine连接到MongoDB(身份验证失败)
5 回答
无法使用Django\u mssql\u后端迁移到外部hos
9 回答
无法使用Django&Python3.4连接到MySql
5 回答
无法使用Django+nginx上载媒体文件
5 回答
无法使用Django1.6导入名称模式
2 回答
无法使用Django1.7和mongodb登录管理站点
2 回答
无法使用Djangoadmin创建项目,进程使用了错误的路径,因为我事先安装了错误的Python
5 回答
无法使用Djangockedi验证CBV中的字段
10 回答
无法使用Djangocketditor上载图像(错误400)
10 回答
无法使用Djangocron进行函数调用
8 回答
无法使用Djangofiler djang上载文件
5 回答
无法使用Djangokronos
10 回答
无法使用Djangomssql provid
6 回答
无法使用Djangomssql连接到带有Django 1.11的MS SQL Server 2016
5 回答
无法使用Djangomssq迁移Django数据库
8 回答
无法使用Djangonox创建用户
10 回答
无法使用Djangopyodb从Django查询SQL Server
10 回答
无法使用Djangopython3ldap连接到ldap
10 回答
无法使用Djangoredis连接到redis
5 回答
无法使用Django中的FK创建新表
7 回答