无法登录包含请求的表单



我认为我正确地完成了所有操作,但脚本不在简单的表单上登录。

登录后,我使用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(...)

上通过该cookie

最新更新