【问题标题】:How can I Extract Specific xml tags from a local xml file using python?如何使用 python 从本地 xml 文件中提取特定的 xml 标签?
【发布时间】:2013-11-16 21:30:15
【问题描述】:

我对与 xml、python 和抓取数据交互还很陌生,所以请多多包涵: 我有一个 xml 文件,其中包含从 evernote 保存的笔记。我已经能够将 BeautifulSoup 和 lxml 加载到我的 python 环境中。我还能够加载 xml 文件并打印

这是我的代码,直到打印为止:

from bs4 import BeautifulSoup
from xml.dom.minidom import parseString
file = open('myNotes.xml','r')
data = file.read()
dom = parseString(data)
print data.toxml()

我没有包含实际打印的文件,因为它包含许多 base 64 代码。

我想要完成的是提取选定的 xml 标签并将它们打印到一个新文件中......帮助!

【问题讨论】:

    标签: python xml parsing xml-parsing screen-scraping


    【解决方案1】:

    这是使用 BeautifulSoup 打印 xml 的方法

    from bs4 import BeautifulSoup
    
    soup = BeautifulSoup(open('myNotes.xml','r'))
    print(soup.prettify())
    

    并将其写入文件:

    with open("file.txt", "w") as f:
        f.write(soup.prettify())
    

    现在,将所有特定类型的标签提取到一个列表中:

    # Extract all of the <a> tags:    
    tags = soup.find_all('a')
    

    【讨论】:

    • 您不必在文件上read()(BeautifulSoup 获取文件指针)。此外,您可能希望为 xml 指定更好的解析器。 soup = BeautifulSoup(open('myNotes.xml', 'r'), 'lxml')
    • 谢谢!让它工作,我能够提取所有特定标签并将它们打印到一个新文件中。
    猜你喜欢
    • 1970-01-01
    • 2016-06-10
    • 1970-01-01
    • 2013-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-06
    相关资源
    最近更新 更多