2017-01-06 2 views
0

Ich versuche, den Inhalt einer Setlist (z. B. Phish setlists - http://api.setlist.fm/rest/0.1/search/setlists?artistName=phish) zu kratzen. Allerdings habe ich Schwierigkeiten, BeautifulSoup dazu zu bringen, die Titel aus dem Attribut herauszuziehen.Scraping XML w/BeautifulSoup4 in Python

Effektiv, ich möchte nur auf das erste Tag schauen, und ziehen Sie den Namen des Songs aus dem Attribut. Zum Beispiel

<song name="Down With Disease> some other crap and tags in here </song> 

Während ich alle 'Name' Informationen und nichts anderes innerhalb der Tags ziehen möchte.

Wenn mir jemand in die Richtung der geeigneten Methode zeigen kann, wäre das großartig. Ich habe Probleme, es in der Dokumentation von BS zu finden. Ich möchte effektiv eine Liste generieren, die alle Attributwerte für das erste Setlist-Tag in meinem XML-Dokument enthält.

+0

post die Ausgabe, die Sie wollen. –

Antwort

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')] 

aus:

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