我认为我所做的一切都正确但脚本不能以简单的形式登录。
登录后,我使用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)
答案 0 :(得分:0)
在r.post(...)之后(r.headers [' Set-Cookie']) 你会得到一个cookie,所以我想你必须在r.get(...)
上传递那个cookie答案 1 :(得分:0)
你需要"发布"您的表单数据到http://streamcloud.eu/。另外传递一个名为op
的附加参数,其值为login
,表示您要登录。所有这些都可以通过快速查看目标网站的html来找到:< / p>
<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)