2012-10-14 82 views
0

好吧,所以,我正在做一個小腳本,下載本網站的一些壁紙。你會如何自動化本網站的登錄過程?

www.wallbase.cc

我已經可以下載我想要的方式,但我想我從一個Python腳本的用戶名和密碼登錄,我已經有點找出如何做到這一點在「普通」網站的登錄表單是可見的網址,但在這一點上,我必須調用一個JavaScript函數來顯示登錄網頁表單,真誠地我不知道如何登錄既不打開網頁表單。

有人可以幫助我嗎?

非常感謝。

+0

我會首先檢查這是不是他們的T&C的卷宗,然後繼續['selenium'](http://pypi.python.org/pypi/selenium)。 –

+0

這不是侵犯T&C,我已經檢查過,也只是爲了個人使用(我爸爸想要一個大集合的壁紙,但手動下載)。 – Eduardo

回答

2

您可以使用POST方法發送您的憑證。

的LiveHTTPHeaders火狐模塊是非常有用的跟蹤的HTTP請求:

http://wallbase.cc/user/login 

POST /user/login HTTP/1.1 
Host: wallbase.cc 
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:15.0) 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Language: en-us,en;q=0.5 
Accept-Encoding: gzip, deflate 
Connection: keep-alive 
Referer: http://wallbase.cc/home 
Cookie: xxx 
Content-Type: application/x-www-form-urlencoded 
Content-Length: 74 
usrname=d&pass=d&nopass_email=Type+in+your+e-mail+and+press+enter&nopass=0 
HTTP/1.1 200 OK 
Content-Encoding: gzip 
Vary: Accept-Encoding 
Content-Type: text/html 
Transfer-Encoding: chunked 
Date: Sun, 14 Oct 2012 05:05:21 GMT 
Server: lighttpd 

的重要組成部分,是

usrname=<YOUR USER NAME>&pass=<PASSWORD>&nopass_email=Type+in+your+e-mail+and+press+enter&nopass=0 

這就是你需要通過POST發送數據。在SO網站的搜索中,您會發現大量的Python中的POST。

我建議您使用mechanize模塊來做到這一點。

+0

我有這樣的: 從機械化導入瀏覽器 BR =瀏覽器() br.open( 'http://www.wallbase.cc/user/login_form') BR [ 'usrname'] ='我的用戶名' submit_response = br.submit(name ='Preview',label ='Preview') br.back() br ['pass'] ='myPassWord' submit_response = br.submit(name ='Create' ,標籤='創建新頁面') 但它似乎沒有工作,你能幫我嗎? – Eduardo

+0

嘗試 - > http://pastie.org/5058111閱讀mechanize文檔。 –

+0

這並沒有起初,但給了我一個想法,這裏的解決方案: http://pastie.org/5059705 非常感謝! – Eduardo