我已经知道使用BeautifulSoup,htmllib等在Python中基于标记的HTML解析。
但是,我想要一个强大的引擎,可以执行复杂的任务,如读取html表,列表等,并将这些作为简单的代码使用对象。 python有这么强大的库吗?
答案 0 :(得分:2)
BeautifulSoup是一个很好的库,它提供了一种解析HTML的好方法,它提供了一些非常方便的解析数据的方法。
您正在尝试做的事情,可以使用一些简单的正则表达式轻松完成。您可以编写正则表达式来搜索特定的数据模式并提取所需的数据。
答案 1 :(得分:2)
您可能会考虑具有强大HTML处理器的lxml
。另一个补充模块依赖lxml
名为pyquery
,可能正是您正在寻找的。 p>
PyQuery具有类似jQuery的语法,所以如果你习惯了jQuery,你就可以直接进入。
以下是从aol.com获取第一个<ul>
项的简单示例:
>>> from pyquery import PyQuery as pq
>>> import urllib
>>> data = urllib.urlopen('http://aol.com').read()
>>> d = pq(data)
>>> first_ul = d('ul:first')
>>> first_ul
[<ul#dhL2>]
>>> print first_ul
<ul id="dhL2"><li class="dhL1"><a accesskey="" href="https://new.aol.com/productsweb/?promocode=827693&ncid=txtlnkuswebr00000074" name="om_dirbtn1" class="_o4-0" id="om_dirbtn1">Get Free Mail</a></li>
</ul>
答案 2 :(得分:0)
标准HTML解析器已经非常擅长为您提供简单的对象(例如,迭代)。从表中创建比2D列表更复杂的任何内容可能取决于页面中的数据。
据说......
这是编写脚本以将html表转换为python列表的人的link to a blog post。实际文件位于here。
我从未听说过执行这些操作的标准python库,因此您最好的选择可能就是在需要时使用Google搜索每个案例。有可能有人做了你想做的事。
免责声明:在将其粘贴到您自己的应用程序之前,您应该始终阅读并理解您在线找到的任何代码!引用来自哪里/哪里也很好!