2010-11-15 57 views
0

我使用機械化提交這樣的表格...使用Firebug我可以看到如何找到POST或GET發表機械化(Python)的變量

import mechanize 

br = mechanize.Browser() 
br.open('http://stackoverflow.com') 
br.select_form(nr=0) 
br['q'] = "test" 
br.set_handle_robots(False) 

response = br.submit() 

print response.info() 
print response.read() 

發佈該實際變量是:

q檢驗

我怎樣才能檢索這些編程方式使用我的python腳本?

請注意,我實際上並沒有刮 - 因此只是以此爲例!

另外,我知道在這種情況下,所發佈的變量是顯而易見的,因爲只有我指定的變量 - 通常情況並非如此!

謝謝:)

回答

1
print br.form.get_value('q') 
+0

ah - 謝謝 - 這對於獲取隱藏的表單變量非常有用,你有任何想法如何訪問cookie /會話信息? – significance 2010-11-23 20:58:00

+1

Cookie將位於HTTP標頭中。 – 2010-11-23 21:59:27

2

您可以通過將這種啓用調試模式,機械化:

import mechanize 

br = mechanize.Browser() 
br.set_debug_http(True) 
... 

希望這能幫助:)

+0

是的,這確實幫助,謝謝! - 我現在可以看到變量出來了......任何想法如何從mechanize.browser對象中獲得它們? :) – significance 2010-11-17 17:20:39

+0

對不起,但我不這麼認爲,如果你想保存調試信息什麼的,我不知道一個簡單的方法來做到這一點,因爲這個功能使調試信息打印在SYS。標準輸出,但我認爲你可以通過將sys.stdout重定向到一個文件來捕獲要放在文件中的輸出,或者如果你想要的話,你也可以創建一個類或一個捕獲這個信息的函數(decorator也許)將其保存在一個屬性中,您可以將其添加到瀏覽器實例或爲此目的創建的新類中...希望我的解釋能夠幫助:) – mouad 2010-11-17 21:22:53