Python выбирает значение в поле со списком и HTTP POST
-
12-09-2019 - |
Вопрос
В 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