用Python进行复杂的HTML解析

2024-04-20 05:02:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经知道Python中使用beauthoulsoup、htmllib等基于标记的HTML解析

但是,我需要一个强大的引擎,它可以完成复杂的任务,如读取html表、列表等,并在代码中以易于使用的对象呈现。python有这么强大的库吗?


Tags: 对象代码标记引擎列表htmlbeauthoulsouphtmllib
3条回答

标准的HTML解析器已经非常擅长于提供简单的对象(例如iterables)。从表中创建比2D列表更复杂的内容可能依赖于页面中的数据。在

上面说。。。在

下面是一个link to a blog post的作者,他编写了一个脚本,将html表转换为python列表。实际文件位于here。在

我从来没有听说过一个标准的python库可以执行这些操作,所以最好的办法是根据需要在google上搜索每个案例。机会是你所做的。在

免责声明:在粘贴到您自己的应用程序之前,您应该阅读并理解您在网上找到的任何代码!引用它的出处也很好!

您可以考虑使用功能强大的HTML处理器的^{}。还有另一个依赖于lxml的互补模块称为^{},这可能正是您所要寻找的。在

PyQuery有类似jQuery的语法,所以如果您习惯了jQuery,那么您可以直接跳进去。在

下面是一个简单的示例,从中获取第一个<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&amp;ncid=txtlnkuswebr00000074" name="om_dirbtn1" class="_o4-0" id="om_dirbtn1">Get Free Mail</a></li>
            </ul>

beauthoulsoup是一个很好的库,它提供了一个解析HTML的好方法,并提供了一些方便的方法来非常容易地解析数据。在

您所要做的,可以使用一些简单的正则表达式轻松完成。您可以编写正则表达式来搜索特定模式的数据并提取所需的数据。在

相关问题 更多 >