2015-01-09 49 views
0

我試圖登錄到機械化的網站。 weibsite沒有形式。有人可以幫我嗎?問題是什麼? 謝謝Python:機械化找不到任何形式

Python代碼:

import mechanize 

browser = mechanize.Browser() 
browser.open("http://website.com/login.php") 

print "forms-start" 
for form in browser.forms(): 
    print form 
print "forms-end" 

Outut:

forms-start 
forms-end 

網站:

<body> 
<div align="center"> 
    <div class="msg"></div><br/> 
    <form method="POST" action="" autocomplete="off"> 
     <p><span><b>Username*:</b></span>&nbsp;<input type="text" name="username" placeholder="your account name" value="" style="width:18em" /></p> 
     <p><span><b>Password*:</b></span>&nbsp;<input type="password" name="password" placeholder="your account password" value="" style="width:18.0em" /></p> 
        <p><span><b>Remember*:</b></span>&nbsp;<input type="checkbox" name="remember" value="1" checked/></p> 
     <input type="hidden" name="login" value="1" /> 
     <input type="submit" class="frmbtn" value="Login" /> 
    </form> 
</div> 
</body> 
+0

什麼: 機械化導入瀏覽器 browser = Browser() response = browser.open(「http://website.com/login.php」) print response.code say? –

+0

__Output__:200 – user2534685

+0

好的,網站在那裏回答。如果你使用.read()交換.code,你應該得到機械化看到的輸出,你可以發佈這個嗎? –

回答

1

按照FAQ機械化不能處理無效的HTML

,如: 「BR /」 你有這樣的代碼對你website

您可以使用BeautifullSoup解析器

import mechanize 

browser = mechanize.Browser(factory=mechanize.RobustFactory()) 
browser.open("http://example.com/") 
print browser.forms 

或者,您可以處理HTML(和頭)擅自:

browser = mechanize.Browser() 
browser.open("http://example.com/") 
html = browser.response().get_data().replace("<br/>", "<br />") 
response = mechanize.make_response(
    html, [("Content-Type", "text/html")], 
"http://example.com/", 200, "OK") 
browser.set_response(response) 

來自FAQ

+0

非常感謝!它的工作 – user2534685

+0

Iam很高興我能幫忙 –