我在从 python 脚本登录网站时遇到一些困难,以便稍后在连接后从中检索数据。
我认为 HTML 页面中包含需要用户名和密码的表单的部分如下:
<div class="contentLogin">
<form action="/login/loginSubmit" method="post" class="memberLogin">
<table cellpadding="0" cellspacing="0" border="0" >
<tr>
<td><label class="color2">Déjà membre</label></td>
<td> </td>
<td><input type="text" value="pseudo" class="input" name="login" id="login" /></td>
<td><input type="password" value="pass" class="input" name="pass" id="pass" /></td>
<td><input type="submit" value="ok" class="color2 loginSubmit" /></td>
</tr>
<tr>
<td colspan="3"></td>
<td colspan="2" >
<a href="#" class="forgotPassword color2" id="forgotPassword">Mot de passe oublié ?</a>
</td>
</tr>
</table>
</form> </div>
我想使用 python 语言的“requests”模块来执行将我连接到该站点的 POST 请求。我的代码已经包含以下命令:
import requests
pars = {'login': 'dva2tlse', 'pass': 'VeryStrong', 'action': 'Idunno'}
resp = requests.post("http://www.example.com", params=pars)
但它似乎不起作用,因为我什至不知道应该在 POST 请求中指示哪个操作。 (我什至不知道具体如何使用它,因为我从来没有这样做过)
谢谢你帮助我让一切正常工作,
大卫
更改 url 值requests.post
匹配给定的<form action>
属性。
另外,删除action
键入你的pars
字典。
pars = { 'login': 'dva2tlse', 'pass': 'VeryStrong' }
resp = requests.post("http://example.com/login/loginSubmit", params=pars)
如果您想保留登录状态以供进一步的页面调用,您可以使用requests.Session()
s = requests.Session()
pars = { 'login': 'dva2tlse', 'pass': 'VeryStrong' }
resp = s.post("http://example.com/login/loginSubmit", params=pars)
只要你坚持使用s
,您将保持登录状态。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)