Mechanize: отправка формы, но не загрузка новой страницы для просмотра результатов

Ладно, я начинаю немного расстраиваться. Я потратил большую часть дня, пытаясь понять, почему мой скрипт не работает — как на github, так и здесь. Это должно быть довольно просто. Механизировать загрузку страницы, заполнение формы, отправку формы, открытие новой страницы с информацией о компании и размещение контента. Это просто не работает. Когда я проверяю код, я вижу, что правильная форма заполнена, но после того, как механизм отправляет форму, он не переходит на новую страницу, а остается на той, где он заполнил форму. Код такой:

from mechanize import Browser

br = Browser()

url = "http://cvr.dk/Site/Forms/CMS/DisplayPage.aspx?pageid=0"

cvr = br.open(url).read()

#I select the form
br.select_form(name="aspnetForm")

#I fill in 19997049 as a company number
br.form['ctl00$QuickSearch1$CvrTextBox'] = "19997049"

response = br.submit()

content = response.read()

print content

У меня такое чувство, что это очень просто, но я что-то упускаю из-за перенаправления, которое должно произойти при отправке формы.

РЕДАКТИРОВАТЬ: кажется, что на сайте много javascripts. Может ли это быть причиной? А когда какие варианты нравятся?

EDIT2: Хорошо, кажется, я могу просто добавить номер компании в URL-адрес и получить нужную страницу таким образом, но я все еще озадачен тем, почему этот скрипт не работает.

Большое спасибо за любой отзыв


person kabp    schedule 28.12.2012    source источник
comment
Я так понимаю, что форма на самом деле загружает другую страницу и не выполняет какие-то волшебные действия AJAX??   -  person Joe Doherty    schedule 28.12.2012
comment
Ну, когда я заполняю форму и отправляю через Chrome, загружается другая страница, но с механизацией я не захожу так далеко. Не думайте, что это волшебство AJAX, возможно, проблема с javascript. Почему-то меня не перенаправляют после отправки.   -  person kabp    schedule 29.12.2012


Ответы (1)


Вам нужно указать, какую кнопку использовать:

response = br.submit(name='ctl00$QuickSearch1$CvrSearchButton')

Что работает, но вызывает проблему с robots.txt, этическую дилемму.

person pguardiario    schedule 29.12.2012
comment
Большое спасибо. Работает как шарм. - person kabp; 29.12.2012