我认为我正确地完成了所有操作,但脚本不在简单的表单上登录。
登录后,我使用get方法尝试如果可以看到用户面板,但是我会恢复页面的索引,就好像没有记录了
用户和密码输入很好。
一些想法??
import requests
url = 'http://streamcloud.eu/login.html'
headers = {'User-Agent': 'Mozilla/5.0'}
payload = {
'login':'my_login',
'password':'my_password'
}
r = requests.session()
r.get(url)
login = r.post(url,data=payload,headers=headers)
result = r.get('http://streamcloud.eu/?op=my_account')
print(result.text)
您需要将表单data发布到http://streamcloud.eu/。另外,将一个称为op
的附加参数带有值login
,以指出您要登录。所有这些都可以通过快速查看目标网站的HTML找到:
<form method="POST" action="http://streamcloud.eu/" class="proform" name="FL">
<input type="hidden" name="op" value="login">
<input type="hidden" name="redirect" value="http://streamcloud.eu/">
<input type="hidden" name="rand" value="">
<p>
<label>Benutzername:</label>
<input type="text" style="font-style: normal;" name="login" value="my_login" class="text_field">
</p>
<div class="clear"></div>
<p>
<label>Passwort:</label>
<input type="password" style="font-style: normal;" name="password" class="text_field">
</p>
<div class="clear"></div>
<div class="clear"></div>
<br>
<div>
<input type="submit" class="button blue medium" value="Senden">
</div>
<div class="clear"></div>
</form>
您可以看到表单将其信息发布到http://streamcloud.eu/:
<form method="POST" action="http://streamcloud.eu/" class="proform" name="FL">
在这里您可以看到隐藏的op
参数:
<input type="hidden" name="op" value="login">
这是更新的代码:
import requests
url = 'http://streamcloud.eu'
headers = {'User-Agent': 'Mozilla/5.0'}
payload = {
'op': 'login',
'login': 'my_login',
'password': 'my_password'
}
r = requests.session()
r.get(url)
login = r.post(url, data=payload, headers=headers)
result = r.get('http://streamcloud.eu/?op=my_account')
print(result.text)
r.post(...)之后(r.headers ['set-cookie'])你会得到一个cookie,所以我想你必须在r.get(...)