代码之家  ›  专栏  ›  技术社区  ›  Cătălin George Feștilă

如何用lxml解析带有表单的结果页?

  •  1
  • Cătălin George Feștilă  · 技术社区  · 14 年前

    我尝试用表单解析第二页。我使用以下链接中的示例代码源代码: http://blog.ianbicking.org/2007/09/24/lxmlhtml/ 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 回复  |  直到 14 年前
        1
  •  2
  •   Johannes Charra    14 年前

    这个 getroot 方法不会为您提供另一个“页面”,而是 lxml.html.HtmlElement

    parse 这一次,你已经把你需要的一切都装进了房间 result