Я пытаюсь автоматизировать вход на веб-сайт, форма входа которого имеет следующий HTML-код (отрывок):
<tr>
<td width="60%">
<input type="text" name="username" class="required black_text" maxlength="50" value="" />
</td>
<td>
<input type="password" name="password" id="password" class="required black_text" maxlength="50" value="" />
</td>
<td colspan="2" align="center">
<input type="image" src="gifs/login.jpg" name="Login2" value="Login" alt="Login" title="Login"/>
</td>
</tr>
Я использую модуль Python mechanize
для просмотра веб-страниц. Следующий код:
br.select_form(predicate=self.__form_with_fields("username", "password"))
br['username'] = self.config['COMMON.USER']
br['password'] = self.config['COMMON.PASSWORD']
try:
request = br.click(name='Login2', type='image')
response = mechanize.urlopen(request)
print response.read()
except IOError, err:
logger = logging.getLogger(__name__)
logger.error(str(err))
logger.debug(response.info())
print str(err)
sys.exit(1)
def __form_with_fields(self, *fields):
""" Generator of form predicate functions. """
def __pred(form):
for field_name in fields:
try:
form.find_control(field_name)
except ControlNotFoundError, err:
logger = logging.getLogger(__name__)
logger.error(str(err))
return False
return True
return __pred
Не уверен, что я делаю не так ...
Спасибо