用Python进行复杂的HTML解析
我已经知道在Python中可以用BeautifulSoup、htmllib等工具来解析基于标签的HTML。
不过,我想要一个更强大的工具,能够处理一些复杂的任务,比如读取HTML表格、列表等,并把这些内容以简单易用的对象形式呈现在代码中。Python有没有这样的强大库呢?
3 个回答
2
你可以考虑使用lxml
,它有一个强大的HTML处理功能。另外,还有一个依赖于lxml
的模块,叫做pyquery
,这可能正是你需要的。
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
BeautifulSoup是一个很不错的库,它提供了一种简单的方法来解析HTML,并且有一些方便的方式可以轻松提取数据。
你想做的事情,其实可以通过一些简单的正则表达式来轻松实现。你可以写正则表达式来查找特定的数据模式,并提取你需要的数据。