2015-06-10 135 views
2

試圖發佈登錄到網站,但似乎無法讓它工作。使用Python請求登錄CloudFlare後面的網站

這裏是返回的錯誤:

<html> 
<head><title>400 Bad Request</title></head> 
<body bgcolor="white"> 
<center><h1>400 Bad Request</h1></center> 
<hr><center>cloudflare-nginx</center> 
</body> 

這裏是形式,我試圖張貼請求登錄到:

<form name="loginform" id="loginform" method="post" action="login.php" onsubmit="return formVal();"> 
<table cellpadding="2" cellspacing="1" border="0" align="center"> 
    <tr valign="top"> 
     <td align="right">Username&nbsp;</td> 
     <td align="left"><input type="text" name="username" id="username" class="inputtext" autofocus="autofocus" /></td> 
    </tr> 
    <tr valign="top"> 
     <td align="right">Password&nbsp;</td> 
     <td align="left"><input type="password" name="password" id="password" class="inputtext" /></td> 
    </tr> 
    <tr valign="top"> 
     <td colspan="2" align="right"><input type="checkbox" name="keeplogged" value="1" />Keep me logged in</td> 
    </tr> 
      <tr> 
       <td colspan="2" align="right"><input type="submit" name="login" value="Log In!" class="submit" /></td> 
    </tr> 
</table> 
<br /><br /> 
Lost your password? <a href="login.php?act=recover">Recover it here!</a> 

請幫助!

回答

2

嘗試首先得到的頁面,然後張貼,這樣的 -

with cfscrape.create_scraper() as s: 
    p = s.get(login_url) 
    p = s.post(login_url, data=payload) 
    print p.content 
+0

它的工作!非常感謝! –

+0

只是爲了解釋更多,這裏的問題不是由於cloudflare造成的。當您爲網站獲取請求時,網站和cloudflare會設置一些cookie,並且這些cookie需要在發佈請求中發送。 –

+0

@LeThanhViet請upvote我的答案,如果它:) –