我试图抓取一个集合列表的内容(例如,Phish setlists - http://api.setlist.fm/rest/0.1/search/setlists?artistName=phish)。但是,我无法让BeautifulSoup将歌曲标题拉出属性。
实际上,我想只查看第一个标签,并从属性中提取歌曲的名称。例如,
<song name="Down With Disease> some other crap and tags in here </song>
我希望提取所有“名称”信息,而不是标签中的任何其他信息。
如果有人能指出我使用适当方法的方向,那就太好了。我在BS的文档中找不到它。我想有效地生成一个包含XML文档中第一个setlist标记的所有属性值的列表。
答案 0 :(得分:0)
import bs4, requests
r = requests.get('http://api.setlist.fm/rest/0.1/search/setlists?artistName=phish')
soup = bs4.BeautifulSoup(r.text, 'lxml')
first_name = soup.find('song').get('name')
all_name = [i.get('name') for i in soup.find_all('song')]
出:
first_name:"Don't Bogart That Joint"
all_name:
["Don't Bogart That Joint",
'Your Pet Cat',
'Kill Devil Falls',
'Back on the Train',
'My Soul',
'Lawn Boy',
'The Divided Sky',
'Ya Mar',
'Character Zero',
'Walls of the Cave',
'Also sprach Zarathustra',
'Carini',
'Twist',
'Piper',
'Ass Handed',
'Sand',
'Slave to the Traffic Light',
'More',
'Petrichor',
'Auld Lang Syne',
'Suzy Greenberg',