2013-02-25 177 views
0

我試圖在網站上登錄並執行自動清理工作。Python:登錄網站

,我需要登錄的網站是:http://site.com/Account/LogOn

我試過,我發現它的堆棧,像Login to website using python(但是我被困在這條線的各種代碼

session = requests.session(config={'verbose': sys.stderr}) 

在我的JetBeans犯規像'verbose'告訴我,我需要做點什麼,但不能解釋到底是什麼)。

我也試過這個:Browser simulation - Python,但是也沒有運氣。

任何人都可以幫助我嗎?所有的答案將不勝感激。提前致謝。

PS:我開始學習Python的2個星期前,請詳細說明你的答案undersanding :)

我的「職業」水平------------------ -------更新:-----------------------------

我設法登錄,但是當我試圖移動其他頁面並按下一個按鈕,它說請登錄!

我用這個代碼:

url = 'http://site.com/Account/LogOn' 
values = {'UserName': 'user', 
      'Password': 'pass'} 

data = urllib.urlencode(values) 
cookies = cookielib.CookieJar() 

opener = urllib2.build_opener(
    urllib2.HTTPRedirectHandler(), 
    urllib2.HTTPHandler(debuglevel=0), 
    urllib2.HTTPSHandler(debuglevel=0), 
    urllib2.HTTPCookieProcessor(cookies)) 

response = opener.open(url, data) 
the_page = response.read() 
http_headers = response.info() 
print response 

我在登錄後,我需要SWITH菜單值,看起來像這樣的HTML:

<select id="menu_uid" name="menu_uid" onchange="swapTool()" style="font-size:8pt;width:120px;"> 
<option value="1" selected>MyProfile</option> 
... 
<option value="6" >DeleteTree</option> 

,但我也可以直接,如果做到這一點我形成這樣一個URL: http://site.com/Account/management.html?Category=6&deltreeid=6&do=Delete+Tree

那麼,我該如何建立這個URL並提交它?再次感謝!

+1

相關:[?我怎樣才能登錄到使用Python網站(http://stackoverflow.com/questions/2910221/how-can -i-login-to-a-website-with-python) – sloth 2013-02-25 14:45:33

+0

看起來你已經有很多事情要做了。你遇到的問題究竟是什麼? – Iguananaut 2013-02-25 14:50:51

回答

1

好東西一日

發送POST請求/帳號/ LogOn支持。 這些字段被稱爲用戶名密碼

然後你可以使用Python的httplib的做HTTP請求

http://docs.python.org/2/library/httplib.html

(有關於如何做一個POST結束的例子)。

然後,您將在HTTP標頭中獲得包含會話cookie的響應。您需要將該Cookie存儲在變量中,並將其發送到所有後續請求中進行身份驗證。

+0

我更新了我的帖子。也許你可以幫助進一步!謝謝 – 2013-02-25 15:25:09

+0

我沒有進一步的幫助,我做到了。謝謝 – 2013-02-25 19:51:50

4

保存自己很多頭痛的,並使用requests

url = 'http://site.com/Account/LogOn' 
values = {'UserName': 'user', 
      'Password': 'pass'} 

r = requests.post(url, data=values) 
# Now you have logged in 

params = {'Category': 6, 'deltreeid': 6, 'do': 'Delete Tree'} 
url = 'http://site.com/Account/management.html' 

# sending cookies as well 
result = requests.get(url, data=params, cookies=r.cookies) 
+3

我真的不喜歡請求,它是一個額外的依賴項,只是爲了保存幾行代碼。 – LtWorf 2013-02-25 22:18:13