2013-04-01 4 views
0

Попытка использовать механику Python для входа на веб-страницу. Поскольку у меня возникла проблема с поиском правильной формы, вместо публикации URL-адреса (который может измениться код), я скопирую часть кода здесь для будущих пользователей. Я читал this, но, похоже, не было окончательного ответа.Механизация Python - представление формы - выбор правильной формы

В любом случае, я делал все с механизацией в this tutorial до тех пор, пока не получаю формы.

Когда я зову:

for form in br.forms(): 
    print form 

я вернусь:

POST https://www.myexample.com/x-www-form-urlencoded 
HiddenControl(utf8=✓) (readonly) 
HiddenControl(authenticity_token=BfqPL1ilOXeg08Or/CEBAiK4duWgncY=  
CheckboxControl(affiliate[remember_me]=[1]) 

Глядя на сырой HTML я вижу:

<label for="affiliate_email">Email<./label> 
<.input autofocus="autofocus" id="affiliate_email" 
    name="affiliate[email]" size="30" type="email" /> 

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

br.select_form(name="affiliate[email]") 
# updated to 
br.select_form(nr=0) 
# Now what do I do here to enter something into that form? 
br.form['someIDhere']='[email protected]' 

Я также пробовал использовать ID формы и многие другие возможные названия форм. Я не понимаю, почему печать форм с br.forms() возвращает эти странные результаты, означает ли это, что сайт использует javascript для форм входа?

Заранее благодарю вас!

ответ

0

affiliate[email] - это не имя формы, а входной формы. Попробуйте использовать:

br.select_form(nr=0) 

, если форма не имеет имени и является первой/единственной формой на этой странице.

+0

Правильно, мне как-то удалось использовать неправильный синтаксис вокруг той части, о которой я имел дело, я имел в виду br.form [''] (после выбора формы я должен ввести в нее данные). Обновлено мое сообщение. Благодаря! – Joker

Смежные вопросы