2015-01-16 4 views
-3

Для этого кода:питона механизировать формы()

import mechanize 
br = mechanize.Browser() 
br.set_handle_robots(False) 
br.open("https://www.facebook.com/login/identify?ctx=recover") 
for i in bt.forms(): 
    print i 

результата:

<POST https://www.facebook.com/login.php?login_attempt=1 application/x-www-form-urlencoded 
    <HiddenControl(lsd=AVrIS_yx) (readonly)> 
    <TextControl(email=)> 
    <PasswordControl(pass=)> 
    <SubmitControl(<None>=طھط³ط¬ظٹظ„ ط§ظ„ط¯ط®ظˆظ„) (readonly)> 
    <CheckboxControl(persistent=[1])> 
    <HiddenControl(default_persistent=0) (readonly)> 
    <HiddenControl(timezone=) (readonly)> 
    <HiddenControl(lgnrnd=004018_suds) (readonly)> 
    <HiddenControl(lgnjs=n) (readonly)> 
    <HiddenControl(locale=ar_AR) (readonly)> 
    <HiddenControl(next=https://www.facebook.com/login/identify?ctx=recover) (readonly)>> 
<POST https://www.facebook.com/ajax/login/help/identify.php?ctx=recover application/x-www-form-urlencoded 
    <HiddenControl(lsd=AVrIS_yx) (readonly)> 
    <TextControl(email=)> 
    <SubmitControl(did_submit=ط¨ط­ط«) (readonly)>> 

Как я могу выбрать второй пост, который имеет только один параметр (email), и представить его ?

+1

Вы можете получить больше ответов, если вы включите название на вопрос - то есть: Как я могу выбрать форму с питоном-механизировать? Также - как для поощрения большего количества ответов, так и для помощи в поиске проблемы - попробуйте сократить до более простой - создайте простую страницу html с примерами структуры, которую вы хотели бы ориентироваться. –

ответ

0

Выберите его с помощью select_form():

br.select_form(nr=1) 
br.form['email'] = 'email here' 
req = br.submit() 

Важное примечание: будьте осторожны, чтобы не нарушать Facebook Web-scraping Terms.

0

, когда я это сделать

br.select_form(nr=1) 
br.form['email'] = 'email' 
br.submit() 
br.response().read() 

ответ является пустым