2011-12-15 42 views
2

我正在嘗試登錄到login.live.com,但機械化不會識別該頁面上有表單。有沒有人有什麼建議?Python Mechanize無法找到login.live.com表單

br=mechanize.Browser() 
br.open('https://login.live.com/') 
br.select_form(nr=0) 

這導致:

mechanize._mechanize.FormNotFoundError: no form matching nr 0

當有明確的是,頁面上的表單。

回答

3

嘗試通過名稱而不是br.select_form(name="f1")獲取表單。

(我從網頁的源文件的形式名字 - 我想你想的登錄表單。)

+1

對不起,我剛剛安裝機械化,並嘗試這一點。沒有工作:/。 – aganders3

1

的問題是,形式是不是在被交付作爲對HTTP GET請求的響應的HTML 。它是稍後在瀏覽器中執行JavaScript腳本的結果而創建的。

有關如何獲取已動態生成的內容的更多信息,請查看this question的答案。

+0

感謝您的回答。看起來我可以正確地使用urllib和urllib2來傳遞參數。如果我能弄清楚如何啓用cookie ... –

1
r = br.open('https://login.live.com/') 
r.get_data() 
# outputs: 
# ... 
# Windows Live ID requires JavaScript to sign in. This web browser either does not support JavaScript, or scripts are being blocked 
# ... 

我沒有找到解決方法,並建議您使用Selenium/webdriver代替。

相關問題