Python, выбирающий значение в поле со списком и HTTP POST - PullRequest
1 голос
/ 21 апреля 2009

В Python я пытаюсь прочитать значения на http://utahcritseries.com/RawResults.aspx. Как я могу прочитать годы, отличные от значений по умолчанию 2002 года?

До сих пор, используя mechanize, я мог ссылаться на SELECT и перечислять все его доступные опции / значения, но не уверен, как изменить его значение и повторно отправить форму.

Я уверен, что это распространенная проблема, и ее часто спрашивают, но я не уверен, что мне даже нужно искать.

Ответы [ 2 ]

1 голос
/ 29 апреля 2009

Так как насчет этого:

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()
0 голосов
/ 21 апреля 2009

При проблемах, связанных с AJAX-загрузкой страниц, используйте Firebug!

Установите и откройте Firebug (это плагин Firefox), перейдите на страницу Net и убедитесь, что выбрано «All». Откройте 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...