我正在尝试根据<p>
<br>
或<div>
标签的位置将抓取的网页分成不同的部分。因此,第一个<p>
标记将包含从<html>
到相关<p>
标记的所有数据/标记。我看过类似于lxml项目中的etree的东西,但它看起来并不重要。
我看到的与“普通”html解析的不同之处在于所选标签的数量。我想要选择多个标签和它们的数据,并将它们分开保存,而“普通”html解析工具提供了只选择一个单独的标签/标签的能力(使用xpath等)并使用它。(我对web编程也是个新手)。
我已经想出了一种方法,我可以保存文件偏移量,然后继续剪切和切片输入文件,以实现我的目标,但它似乎充其量是黑客。
我怎样才能达到我所说的目标,请帮助我。
谢谢。
发布于 2013-07-30 10:31:18
使用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")
https://stackoverflow.com/questions/17944062
复制