2012-12-28 37 views
1

好的,所以我開始有點沮喪。我花了大部分時間試圖弄清楚爲什麼我的腳本不工作 - 無論是在github上還是在這裏。它應該相當簡單。機械化加載頁面,填寫表格,提交表格,打開一個包含公司信息的新頁面併發布內容。這只是不工作。當我檢查代碼時,我可以看到,正確的表單被填寫完畢,但機械化提交表單後,它不會進入新頁面,而是停留在填寫表單的那個表單上。代碼是這樣的:機械化:提交表單,但不能加載新頁面查看結果

from mechanize import Browser 

br = Browser() 

url = "http://cvr.dk/Site/Forms/CMS/DisplayPage.aspx?pageid=0" 

cvr = br.open(url).read() 

#I select the form 
br.select_form(name="aspnetForm") 

#I fill in 19997049 as a company number 
br.form['ctl00$QuickSearch1$CvrTextBox'] = "19997049" 

response = br.submit() 

content = response.read() 

print content 

我有一種感覺,這是非常簡單的,但我就是缺少與應該發生的重定向,當表單提交的東西。

編輯:它似乎有很多JavaScript的網站上。這可能是原因嗎?什麼時候有什麼選擇?

編輯2:好吧,似乎我可以簡單地在網址中添加公司編號,並獲得我想要的那個頁面,但我仍然不明白爲什麼這個腳本不起作用。

感謝一大堆的任何反饋

+0

我把它的形式實際加載另一個頁面,並沒有做一些AJAX wizadry? –

+0

那麼,當我填寫表單並通過Chrome提交時,會加載另一個頁面,但通過機械化我沒有那麼深入。不要以爲它是AJAX wizadry,可能是JavaScript的問題。不知何故,我不會在提交後重定向。 – kabp

回答

3

你需要告訴它要使用的按鈕:

response = br.submit(name='ctl00$QuickSearch1$CvrSearchButton') 

哪些工作,但提出了robots.txt的問題,道德困境。

+0

非常感謝。奇蹟般有效。 – kabp