【问题标题】:program runs but returns no response when reading an xml file程序运行但读取 xml 文件时不返回响应
【发布时间】:2022-01-13 19:30:56
【问题描述】:

这是我的程序的代码:

from bs4 import BeautifulSoup


with open('wiki_articles.xml', 'r', encoding='utf-8') as f:
    data = f.read()


bs_data = BeautifulSoup(data, "xml")

bs_title = bs_data.find_all('title')

print(bs_title)

程序运行但不返回任何内容。只有当我停止它时它才会退出。 我尝试了其他标签,但问题仍然存在。 xml 文件大约 220 Mb,我的电脑可以运行这个程序。

【问题讨论】:

  • 这是一个很大的 XML 文件!在杀死它之前你让它运行了多长时间?注意:使用“top”或任务管理器或类似的方式密切关注进程内存使用情况。解析这个野兽可能会占用 RAM。
  • 你是对的。它正在吃掉内存。您对如何使用它有什么建议吗?
  • 查看此页面:codefaster.substack.com/p/mastering-jq-xml-and-any-other-data - 它建议了一种将 XML 流式转换为 JSON 的方法,然后使用神奇工具“jq”提取字段(然后可选择转换回 XML )。这项任务的好处在于这些工具适用于流,而不是大块。

标签: python xml beautifulsoup lxml


【解决方案1】:

请更正解析器名称lxml 而不是xml

bs_data = BeautifulSoup(data, "lxml")

【讨论】:

  • 谢谢...成功了!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-08-10
  • 2020-04-15
  • 2017-03-08
  • 1970-01-01
  • 2014-04-13
  • 2022-07-23
  • 1970-01-01
相关资源
最近更新 更多