LINUX.ORG.RU

Ответ на: комментарий от phoenix

>python + mechanize

Спасибо, вроде то что нужно

Turbid ★★★★★
() автор топика
Ответ на: комментарий от phoenix

Вообщем, попробовал я python + mechanize, но столкнулся с проблемой:

from mechanize import Browser

url_root = 'http://www.xxx.ru/'
username = 'xxx'
userpass = 'yyy'

br = Browser()
br.set_handle_robots(False)

br.open(url_root)

br.select_form(nr=2)
br["login"] = username
br["password"] = userpass
br.submit()

br.follow_link(text='xxx', nr=0)
#print rs.read()
rs = br.follow_link(text='yyy', nr=0)

print rs.read() # << здесь все хорошо, html выводитсо

br.select_form(nr=0) # << а вот тут ошибка:

"Traceback (most recent call last):
  File "./mailc.py", line 35, in <module>
    br.select_form(nr=0)
  File "/usr/lib/python2.5/site-packages/mechanize/_mechanize.py", line 492, in select_form
    for form in self.forms():
  File "/usr/lib/python2.5/site-packages/mechanize/_mechanize.py", line 414, in forms
    return self._factory.forms()
  File "/usr/lib/python2.5/site-packages/mechanize/_html.py", line 534, in forms
    self._forms_factory.forms())
  File "/usr/lib/python2.5/site-packages/mechanize/_html.py", line 226, in forms
    raise ParseError(exc)
"

Как понять что ему не нравиться и что он не может распарсить?

Turbid ★★★★★
() автор топика
Ответ на: комментарий от Turbid

Невалидный html?

>print rs.read()

Или, мб, ты в этой строчке считываешь до конца все данные? Не юзал механайз, но выглядит так, как будто он файловый интерфейс предоставляет.

anonymous4
()
Ответ на: комментарий от anonymous4

>>print rs.read()
>Или, мб, ты в этой строчке считываешь до конца все данные?


Нет, если её закомментировать, то ничего не меняется. Хтмл там да, не прохходит проверку на стандарты. Но я пробовал подменять код на свой, состоящий буквально из одной формы:

my_data = """
<html>
...
...
<form>
...
etc
etc
"""
rs.set_data(my_data)
br.set_response(rs)

но получал теже ошибки. Просто я думаю, что должне бы быть способ как-то в режиме отладки запустить это дело и посмотреть конкретно что ему не нравиться, но по этой статье я что-то не въезжаю как: http://wwwsearch.sourceforge.net/mechanize/doc.html

Turbid ★★★★★
() автор топика
Ответ на: комментарий от Turbid

>Но я пробовал подменять код на свой, состоящий буквально из одной формы

Аккуратно все переписал, заработало. Всем спасибо.

Turbid ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.