2014-04-15 3 views
2

파이썬으로 암호로 보호 된 웹 사이트를 긁어 내려고했습니다. 다음과 같이 내 코드는 다음과 같습니다파이썬 기계어가 기존 컨트롤이 존재하지 않는다고 말합니다.

import mechanize 
import cookielib 
from BeautifulSoup import BeautifulSoup 

br = mechanize.Browser() 

cj = cookielib.LWPCookieJar() 
br.set_cookiejar(cj) 

br.set_handle_equiv(True) 
br.set_handle_gzip(True) 
br.set_handle_redirect(True) 
br.set_handle_referer(True) 
br.set_handle_robots(False) 

br.set_handle_refresh(mechanize._http.HTTPRefreshProcessor(), max_time=1) 

br.addheaders = [('User-agent', 'Chrome')] 

br.open('https://monitor1.returnpath.net/login.php') 

for f in br.forms(): 
print f 

br.select_form(nr=1) 

br.form['email'] = 'email' 
br.form['password'] = 'password' 

를 루프 반환이 :

<form1 POST https://monitor1.returnpath.net/login.php application/x-www-form-urlencoded 
    <TextControl(email=)> 
    <PasswordControl(password=)> 
    <CheckboxControl(remember=[1])> 
    <SubmitControl(Submit=Sign In) (readonly)>> 
<GET http://now.eloqua.com/e/f2.aspx application/x-www-form-urlencoded 
    <TextControl(e=)> 
    <HiddenControl(lang=NA) (readonly)> 
    <HiddenControl(elqSiteID=841) (readonly)> 
    <HiddenControl(elqFormName=nLRegFooter-1347904420246) (readonly)> 
    <SubmitControl(<None>=Sign Me Up) (readonly)> 
    <SubmitButtonControl(<None>=) (readonly)>> 
<POST https://monitor1.returnpath.net/send_feedback.php application/x-www-form-urlencoded 
    <HiddenControl(size=) (readonly)> 
    <HiddenControl(nps=) (readonly)> 
    <TextareaControl(desc=)> 
    <IgnoreControl(<None>=<None>)> 
    <IgnoreControl(<None>=<None>)> 
    <IgnoreControl(<None>=<None>)> 
    <IgnoreControl(<None>=<None>)> 
    <IgnoreControl(<None>=<None>)> 
    <IgnoreControl(<None>=<None>)> 
    <IgnoreControl(<None>=<None>)> 
    <IgnoreControl(<None>=<None>)> 
    <IgnoreControl(<None>=<None>)> 
    <IgnoreControl(<None>=<None>)> 
    <IgnoreControl(<None>=<None>)>> 

그리고이 오류 :

mechanize._form.ControlNotFoundError: no control matching name 'email'

출력 상태 '이메일'그래서 난 발견된다을 왜 그것이 일치하는 컨트롤이 없다고 말하고 있는지 확신 할 수 없습니까?

답변

1

인덱스가 0입니다. 아래 코드를 시도하십시오.

br.select_form(nr=0) 
+0

그리고 그랬습니다. 고마워요! – WyldStallyns

관련 문제