如何用lxml解析带表单的结果页面?
我在尝试解析一个有表单的二级页面。我使用了这个链接里的示例代码: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 个回答
2
这个 getroot
方法并不是给你另一个“页面”,而是给你一个 lxml.html.HtmlElement
的实例。
你不需要再去 parse
(解析)一次,因为你已经在 result
变量里得到了所有需要的东西。