Python在组合框和HTTP POST中选择一个值

时间:2009-04-20 20:29:50

标签: asp.net python http web-scraping

在Python中,我正在尝试阅读http://utahcritseries.com/RawResults.aspx上的值。我怎样才能阅读2002年以外的年份?

到目前为止,使用mechanize,我已经能够引用SELECT并列出所有可用的选项/值,但我不确定如何更改其值并重新提交表单。

我确信这是一个常见问题并经常被问到,但我不确定我应该搜索什么。

2 个答案:

答案 0 :(得分:1)

那怎么样:

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()

答案 1 :(得分:0)

有关加载页面的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