我正在尝试使用robobrowser和python 3.4来抓取一个html表单。我使用默认的html解析器:
self._browser = RoboBrowser(history=True, parser="html.parser")
它适用于正确的网页但现在我必须解析错误的书面页面。这是html片段:
<form method="post" action="decide.php?act=submit_advance">
<table class="td_advanced">
<tr class="td_advance">
<td colspan="4" class="td_advance"></strong><br></td>
<td colspan="3" class="td_left">Case sensitive:<br><br></td>
<td><input type="checkbox" name="case_sensitive" /><br><br></td>
[...]
</form>
结束 strong
标记不正确。此错误会阻止解析器读取此错误标记后的所有输入:
form = self._browser.get_form()
print(form)
>>> <RoboForm>
有什么建议吗?
答案 0 :(得分:0)
我自己找到了解决方案。关于beautifulsoup的评论很有帮助,并以适当的方式进行了搜索。
解决方案是:使用另一个html解析器。我试过 lxml ,它对我有用。
restclient
由于PyPI目前没有lxml安装程序使用我的python版本,我从这里下载了它:http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml