Вопрос

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

До сих пор, используя механизацию, мне удавалось ссылаться на 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 (это плагин 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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top