1

我试图根据 <p> <br><div>标签的位置将抓取的网页分成不同的部分。因此,第一个<p>标签将包含从相关标签到所有数据/<html>标签<p>。我看过 lxml 项目中的 etree 之类的东西,但它看起来很相切。

我从“正常” html 解析中看到的区别是选择的标签数量。我想选择多个标签及其数据并分别保存它们,而“普通” html 解析工具提供仅选择一个隔离标签/标签(使用 xpath 等)并使用它的能力。(我对网络编程也很陌生)。

我已经想到了一种方法,我可以保存文件偏移量,然后继续对输入文件进行剪切和切片以实现我的目标,但它充其量似乎是骇人听闻的。

我该如何实现我的既定目标,请帮助。

谢谢。

4

1 回答 1

3

使用BeautifulSoup。它是一个很棒的用于解析 HTML 的 Python 工具。

下面是一个例子来展示解析 HTML 是多么容易——它打印标签名称 (p) 和所有<p>标签的内容。然后它找到 id 为“header”的元素。

这只是一个片段——BeautifulSoup 提供了许多过滤 HTML 文档的方法。

import sys
# add path to beautifulsoup library
sys.path.append('/usr/local/var/beautifulsoup')
# import it
from bs4 import BeautifulSoup

soup = BeautifulSoup(open("yourfile.html"))
for tag in soup.find_all('p'):
    print tag.name, tag.text

soup.find(id="header")
于 2013-07-30T10:31:18.277 回答