从asp.netAJAX应用程序

2024-10-02 04:22:59 发布

您现在位置:Python中文网/ 问答频道 /正文

使用Python,我试图读取http://utahcritseries.com/RawResults.aspx上的值。我可以很好地阅读页面,但很难更改年份组合框的值,以查看其他年份的数据。除了2002年的默认数据之外,我如何读取这些年份的数据?在

一旦“年份”组合框发生更改,页面似乎正在执行HTTP Post。控件的名称是ct100$ContentPlaceHolder1$ddlSeries。我尝试使用设置此控件的值urllib.urlencode(postdata),但我一定是做错了页面上的数据没有改变。这可以用Python实现吗?在

如果可能的话,我宁愿不使用硒。在

我一直在使用这样的代码(来自stackoverflow用户dbr)

import urllib

postdata = {'ctl00$ContentPlaceHolder1$ddlSeries': 9}

src = urllib.urlopen(
    "http://utahcritseries.com/RawResults.aspx",
    data = urllib.urlencode(postdata)
).read()

print src

但似乎也在收集2002年的数据。我尝试过使用firebug检查头文件,我看到很多无关的随机数据被来回发送我是否还需要将这些值发送回服务器?在


Tags: 数据srccomhttp页面urllib控件年份
1条回答
网友
1楼 · 发布于 2024-10-02 04:22:59

使用优秀的mechanize库:

from mechanize import Browser

b = Browser()
b.open("http://utahcritseries.com/RawResults.aspx")
b.select_form(nr=0)

year = b.form.find_control(type='select')
year.get(label='2005').selected = True

src = b.submit().read()
print src

Mechanize在PyPI上可用:easy_install mechanize

相关问题 更多 >

    热门问题