Как я могу разобрать с lxml страницу результатов с формой? - PullRequest
1 голос
/ 30 августа 2010

Я пытаюсь разобрать вторичную страницу с формой. Я использую пример исходного кода по этой ссылке: http://blog.ianbicking.org/2007/09/24/lxmlhtml/ В моем тесте я использую этот URL: http://www.infofer.ro/ Как и в примере, я использую следующие значения:

>>> pprint(form.form_values())
[('cboData', '8/30/2010'),
 ('txtPlecare', 'Bucuresti Nord'),
 ('txtSosire', 'Constanta'),
 ('tip', 'GO'),
 ('lng', '1')]

В результате возьмите это с собой:

result = parse(submit_form(form)).getroot()

Это еще одна страница с другой формой. Я пытаюсь что-то вроде этого:

>>> page2=parse(result).getroot()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.6/site-packages/lxml/html/__init__.py", line 661, in parse
    return etree.parse(filename_or_url, parser, base_url=base_url, **kw)
  File "lxml.etree.pyx", line 2706, in lxml.etree.parse (src/lxml/lxml.etree.c:49945)
  File "parser.pxi", line 1525, in lxml.etree._parseDocument (src/lxml/lxml.etree.c:72026)
TypeError: cannot parse from 'HtmlElement'

Как мне разобрать форму со второй страницы?

Привет.

1 Ответ

2 голосов
/ 30 августа 2010

Метод getroot не дает вам еще одну "страницу", но создает экземпляр lxml.html.HtmlElement.

Нет необходимости (и нет возможности) parse еще раз, у вас уже есть все необходимое, упакованное в переменную result.

...