Ich verwende Python 2.7 und Mechanize 2.5. Ich versuche, die select_form()-Methode zu verwenden, aber ich erhalte den folgenden Fehler:
File "C:\Python27\lib\site-packages\mechanize\_mechanize.py", line 499, in select_form
global_form = self._factory.global_form
File "C:\Python27\lib\site-packages\mechanize\_html.py", line 544, in __getattr__
self.forms()
File "C:\Python27\lib\site-packages\mechanize\_html.py", line 557, in forms
self._forms_factory.forms())
File "C:\Python27\lib\site-packages\mechanize\_html.py", line 237, in forms
_urlunparse=_rfc3986.urlunsplit,
File "C:\Python27\lib\site-packages\mechanize\_form.py", line 845, in ParseResponseEx
_urlunparse=_urlunparse,
File "C:\Python27\lib\site-packages\mechanize\_form.py", line 982, in _ParseFileEx
fp.feed(data)
File "C:\Python27\lib\site-packages\mechanize\_form.py", line 759, in feed
_sgmllib_copy.SGMLParser.feed(self, data)
File "C:\Python27\lib\site-packages\mechanize\_sgmllib_copy.py", line 110, in feed
self.goahead(0)
File "C:\Python27\lib\site-packages\mechanize\_sgmllib_copy.py", line 144, in goahead
k = self.parse_starttag(i)
File "C:\Python27\lib\site-packages\mechanize\_sgmllib_copy.py", line 302, in parse_starttag
self.finish_starttag(tag, attrs)
File "C:\Python27\lib\site-packages\mechanize\_sgmllib_copy.py", line 347, in finish_starttag
self.handle_starttag(tag, method, attrs)
File "C:\Python27\lib\site-packages\mechanize\_sgmllib_copy.py", line 387, in handle_starttag
method(attrs)
File "C:\Python27\lib\site-packages\mechanize\_form.py", line 736, in do_option
_AbstractFormParser._start_option(self, attrs)
File "C:\Python27\lib\site-packages\mechanize\_form.py", line 481, in _start_option
raise ParseError("OPTION outside of SELECT")
ParseError: OPTION outside of SELECT
Dies ist mein Code:
cj = cookielib.LWPCookieJar()
br = mechanize.Browser()
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', 'Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.9.0.1) Gecko/2008071615 Fedora/3.0.1-1.fc9 Firefox/3.0.1')]
br.open("website_url_which_i_will_not_share")
br.select_form(nr=0)
Der folgende Abschnitt des Formulars auf der von mir geöffneten Webseite ist HTML
<html lang="en-us" xml:lang="en-us" xmlns="http://www.w3.org/1999/xhtml">
<head> I omitted this section </head>
<body class="login">
<div id="container">
<div id="header" style="background-color: #13397A;">
<div id="content" class="colM">
<div id="content-main">
<form id="login-form" method="post" action="/admin/">
<div style="display:none">
<input type="hidden" value="8a689f2e3d215a3465f1bb66e037d1a5" name="csrfmiddlewaretoken">
</div>
<div class="form-row">
<label class="required" for="id_username">Username:</label>
<input id="id_username" type="text" maxlength="30" name="username">
</div>
<div class="form-row">
<label class="required" for="id_password">Password:</label>
<input id="id_password" type="password" name="password">
<input type="hidden" value="1" name="this_is_the_login_form">
<input type="hidden" value="/admin/" name="next">
</div>
<div class="submit-row">
<label> </label>
<input type="submit" value="Log in">
</div>
</form>
<script type="text/javascript">
</div>
<br class="clear">
</div>
<div id="footer"></div>
</div>
<script type="text/javascript">
</body>
</html>
Ich habe auf Stackoverflow und bei Google recherchiert, aber ich kann keine ähnliche Frage oder sogar eine Beschreibung dieses Fehlers finden.
Wenn mir jemand sagen könnte, was dieser Fehler bedeutet, und mir helfen könnte, den Fehler zu finden, wäre ich sehr dankbar.
Gracias
Bearbeiten: Ich habe eine Menge von Formularen eingereicht und jede Seite funktioniert gut, außer dieser einen. Es handelt sich um eine Datenbank-API, von der ich versuche, Daten abzurufen.