使用Beautiful Soup解析两个闭合标签之间的内容

2 投票
3 回答
1029 浏览
提问于 2025-04-17 06:39

我正在使用BeautifulSoup这个工具来解析一个网页上的艺术家和专辑信息。我已经把信息整理成了这样:

`<span dir="ltr"><a href="unique?id=1234">Jay-Z</a> &amp; <a href="unique?id" = 321">Kanye West</a> - Watch the Throne</span>`

专辑名称(在这个例子中是“Watch the Throne”)总是在一个结束的 </span> 标签之前。

我需要从整个 <span> 元素中提取出专辑数据,无论这个专辑里有多少个艺术家,可能是一个艺术家,也可能是30个艺术家。

困难在于专辑名称夹在两个结束标签之间。

有没有什么好主意?

3 个回答

0

如果s是汤元素的话:

album = s.findAll('a')[-1].nextSibling

我想你可以自己把“ - ”清理掉。祝你好运,我喜欢beautifulsoup。

1

在编程中,有时候我们会遇到一些问题,特别是在使用某些工具或库的时候。这些问题可能会让我们感到困惑,尤其是当我们不太了解这些工具的工作原理时。

比如,有人可能在使用某个库时,发现它的某个功能没有按照预期工作。这时候,他们可能会去网上搜索,看看有没有人遇到过类似的问题,或者有没有解决方案。

在这个过程中,提问的方式也很重要。一个清晰、具体的问题更容易得到帮助。比如,描述你遇到的具体情况,提供相关的代码片段,或者说明你尝试过哪些解决方法,这样别人才能更好地理解你的问题。

总之,遇到问题时,保持耐心,仔细描述情况,通常能帮助你找到解决方案。

>>> from BeautifulSoup import BeautifulSoup
>>> html = '''<span dir="ltr"><a href="unique?id=1234">Jay-Z</a> &amp; 
... <a href="unique?id" = 321">Kanye West</a> - Watch the Throne</span>'''
>>> soup = BeautifulSoup(html)
>>> soup.span.contents[-1].strip('- ')
u'Watch the Throne'

撰写回答