【问题标题】:Parse SGML using beautiful soup使用漂亮的汤解析 SGML
【发布时间】:2021-03-06 01:07:49
【问题描述】:

以下是示例内容:-

<WKEXT-META-ATTRS>
<WKEXT-META-ATTR NAME="uri" VALUE="http://sample.com/ceres/wk-us/Concept/i8148" DATA-TYPE="OTHER"></WKEXT-META-ATTR></WKEXT-META-ATTRS></WKEXT-META-OBJECT>
<WKEXT-META-OBJECT NAME="UNIONREPINFO" ID="ext-met-0005" PUBLISHER-URI="http://wk-us.com/meta/publishers/#CCH">
<WKEXT-META-ATTRS>
<WKEXT-META-ATTR NAME="UnionRep" VALUE="Jim Gookins" DATA-TYPE="OTHER"></WKEXT-META-ATTR></WKEXT-META-ATTRS></WKEXT-META-OBJECT>
<WKEXT-META-OBJECT NAME="TOPICALSUBJECTINFO" ID="ext-met-0006" PUBLISHER-URI="http://sample.com/meta/publishers/#CCH">
<WKEXT-META-ATTRS>
<WKEXT-META-ATTR NAME="uri" VALUE="http://sample.com/ceres/sample/Concept/i8173" DATA-TYPE="OTHER"></WKEXT-META-ATTR></WKEXT-META-ATTRS></WKEXT-META-OBJECT>
<WKEXT-META-OBJECT NAME="TOPICALSUBJECTINFO" ID="ext-met-0007" PUBLISHER-URI="http:/sample/meta/publishers/#CCH">

我要提取uri的VALUE -- "http://sample.com/ceres/wk-us/Concept/i8141

我目前正在尝试使用以下代码:-

with open ("sample.sgm","r")as f:
    contents =f.read()
    soup = BeautifulSoup(contents, 'lxml')
    s = soup.find('wkext-meta-attr').attrs
    #for a in s:
    #    t = a.attrs
    #    for key,value in t.items():
    #        alias_text.append(t['normval'])
    #print(alias_text)
    #df = DataFrame(alias_text, columns=['arbitratorname'])
    #s_topic=soup.find('WKEXT-META-ATTRS'=
    print(s)

我无法弄清楚如何获得确切的价值。 任何帮助将不胜感激!!!

【问题讨论】:

  • 代码有什么问题?
  • @HarshanaSerasinghe 我无法使用此代码获得价值,它不适用于此要求

标签: python-3.x beautifulsoup data-processing sgmlreader


【解决方案1】:

如果要检索每个wkext-meta-attr 的值,可以使用`.findAll() 方法,然后循环遍历每个元素。检查以下代码是否满足您的任务:

from bs4 import BeautifulSoup

with open ("sample.sgm","r")as f:
    contents =f.read()
    soup = BeautifulSoup(contents, 'html.parser')
    meta_attrs = soup.findAll('wkext-meta-attr')
    
for meta_attr in meta_attrs:
    print(meta_attr['value'])

【讨论】:

  • 我也试过这种方式,它给了我一个空白列表。知道可能是什么问题
  • 你把解析器改成html.parser了吗?
  • 我做了,但仍然给出一个空白列表
  • 我使用您在问题中发布的示例来检查我的代码并且它有效。
  • 我正在传递 SGML 文件,这可能是问题所在,html 解析器无法处理 sgml 吗?
猜你喜欢
  • 2017-05-23
  • 2019-11-10
  • 2013-03-21
  • 1970-01-01
  • 1970-01-01
  • 2015-07-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多