2017-01-06 76 views
0

我試圖抓取一個setlist的內容(例如,Phish setlists - http://api.setlist.fm/rest/0.1/search/setlists?artistName=phish)。不過,我無法讓BeautifulSoup將歌曲標題從屬性中拉出來。在Python中刮擦帶有BeautifulSoup4的XML

實際上,我只想看第一個標籤,並從屬性中提取歌曲的名稱。例如,

<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',