在Python中,我試圖讀取http://utahcritseries.com/RawResults.aspx上的值。我如何閱讀2002年以外的其他年份?Python在組合框和HTTP POST中選擇一個值
到目前爲止,使用機械化,我已經能夠引用SELECT並列出所有可用的選項/值,但我不確定如何更改其值並重新提交表單。
我確定這是一個常見問題,經常被問到,但我不知道我應該甚至在尋找什麼。
在Python中,我試圖讀取http://utahcritseries.com/RawResults.aspx上的值。我如何閱讀2002年以外的其他年份?Python在組合框和HTTP POST中選擇一個值
到目前爲止,使用機械化,我已經能夠引用SELECT並列出所有可用的選項/值,但我不確定如何更改其值並重新提交表單。
我確定這是一個常見問題,經常被問到,但我不知道我應該甚至在尋找什麼。
那麼這個怎麼樣:
from mechanize import Browser
year="2005"
br=Browser()
br.open("http://utahcritseries.com/RawResults.aspx")
br.select_form(name="aspnetForm")
control=br.form.find_control("ctl00$ContentPlaceHolder1$ddlSeries")
control.set_value_by_label((year,))
response2=br.submit()
print response2.read()
與涉及的AJAX頁面加載問題,請使用Firebug!
安裝並打開Firebug(這是一個Firefox插件),轉到網絡頁面,並確保「所有」被選中。打開URL並更改選擇框,查看發送到服務器的內容以及收到的內容。
看來積極的字段ctl00$ContentPlaceHolder1$ddlSeries
是什麼是負責..以下工作..?
import urllib
postdata = {'ctl00$ContentPlaceHolder1$ddlSeries': 9}
src = urllib.urlopen(
"http://utahcritseries.com/RawResults.aspx",
data = urllib.urlencode(postdata)
).read()
print src
不,這不起作用 - 當我打印src時,我仍然看到2002年的值。我嘗試了類似的東西(雖然有更多的線條;) - 我只是一個菜鳥) – 2009-04-20 21:11:53
這似乎是某種ASP.NET腳手架式的東西,因爲代碼看起來非常生成的計算機。也許一些重新說明可能會有所幫助,比如「從AJAX ASP.NET應用程序獲取數據」。 – dbr 2009-04-20 20:48:03