从网页HTML中提取时尝试格式化文本

时间:2017-01-05 01:49:20

标签: python html beautifulsoup

我已经为一首歌中的单词创建了一个基本计数器,但是在此歌词网站上的给定页面中格式化专辑标题和艺术家名称时遇到了问题。以下是我关注的一个例子:

Sample HTML

我想以这种方式格式化它:

专辑标题:[专辑标题](Release_year)

艺术家:[艺术家姓名]

我遇到了两个问题:

  1. 专辑标题并未包含在自己的标签中,因此如果我调用h1标签,我会同时获得专辑名称,发行年份和艺术家名称。如何单独调用它们,或者在调用它们时如何将它们分解?

  2. 相册名称有两个空行,两个空格包含在字符串中。我怎么摆脱他们?发行年份打印在专辑标题旁边,这正是我正在寻找的,但我不能让专辑标题正确格式化。

  3. 这就是我目前所拥有的:

    song_artist = soup.find("a",{"class":"artist"}).get_text()
    album_title = soup.find("h1",{"class":"album_name"}).get_text()
    print "Album Title: " + str(album_title)
    print "Song Artist: " + str(song_artist.title())
    

    产生:

    Current Output

    谢谢!

1 个答案:

答案 0 :(得分:1)

album_title = soup.find("h1",{"class":"album_name"}).find(text=True).strip()
album_year = soup.find("span",{"class":"release_year"}).get_text().strip()

print 'Album Title: {} {}'.format(album_title, album_year)