好吧,所以,我正在做一個小腳本,下載本網站的一些壁紙。你會如何自動化本網站的登錄過程?
www.wallbase.cc
我已經可以下載我想要的方式,但我想我從一個Python腳本的用戶名和密碼登錄,我已經有點找出如何做到這一點在「普通」網站的登錄表單是可見的網址,但在這一點上,我必須調用一個JavaScript函數來顯示登錄網頁表單,真誠地我不知道如何登錄既不打開網頁表單。
有人可以幫助我嗎?
非常感謝。
好吧,所以,我正在做一個小腳本,下載本網站的一些壁紙。你會如何自動化本網站的登錄過程?
www.wallbase.cc
我已經可以下載我想要的方式,但我想我從一個Python腳本的用戶名和密碼登錄,我已經有點找出如何做到這一點在「普通」網站的登錄表單是可見的網址,但在這一點上,我必須調用一個JavaScript函數來顯示登錄網頁表單,真誠地我不知道如何登錄既不打開網頁表單。
有人可以幫助我嗎?
非常感謝。
您可以使用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
模塊來做到這一點。
我有這樣的: 從機械化導入瀏覽器 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
嘗試 - > http://pastie.org/5058111閱讀mechanize文檔。 –
這並沒有起初,但給了我一個想法,這裏的解決方案: http://pastie.org/5059705 非常感謝! – Eduardo
我會首先檢查這是不是他們的T&C的卷宗,然後繼續['selenium'](http://pypi.python.org/pypi/selenium)。 –
這不是侵犯T&C,我已經檢查過,也只是爲了個人使用(我爸爸想要一個大集合的壁紙,但手動下載)。 – Eduardo