2017-04-20 3 views
2

Der Versuch, alle Tags in einer Website zu bekommen, ich habe dieses Stück Code:BeautifulSoup - erhalten alle <a> durch Komma getrennt Tags

results=[] 

all_links = soup.find_all('article') 
     for link in all_links: 
      print link.find('div', class_="cb-category cb-byline-element") 

So kann ich Daten auf folgende Weise angezeigt bekommen gekratzt (mit ',', Trennen <a> Tags):

<div class="cb-category cb-byline-element"><i class="fa fa-folder-o"></i> <a href="http://ridethetempo.com/category/canadian/" title="View all posts in Canadian">Canadian</a>, <a href="http://ridethetempo.com/category/music/garage-rock/" title="View all posts in Garage">Garage</a>, <a href="http://ridethetempo.com/category/listen-2/" title="View all posts in Listen">Listen</a>, <a href="http://ridethetempo.com/category/music/" title="View all posts in Music">Music</a>, <a href="http://ridethetempo.com/category/music/psychedelic/" title="View all posts in Psychedelic">Psychedelic</a>, <a href="http://ridethetempo.com/category/under-2000/" title="View all posts in Under 2000">Under 2000</a></div> 

jedoch, wenn ich folgendes tun:

results.append(link.find('div', class_="cb-category cb-byline-element")) 
for link in results: 
    link.find('a', href=True)['href'] 

erhalte ich nur die ersten <a> für jeden Block von <div>, etwa so:

http://ridethetempo.com/category/canadian/ 

Wie abrufen rekursiv alle <a>-Tags, so dass ich am Ende mit diesem Ergebnis nach oben?

http://ridethetempo.com/category/canadian/ 
http://ridethetempo.com/category/music/garage-rock/ 
http://ridethetempo.com/category/listen-2/ 
http://ridethetempo.com/category/music/ 
http://ridethetempo.com/category/music/psychedelic/ 
http://ridethetempo.com/category/under-2000/ 
+0

Versuchen findAll ("a", href = True) – datawrestler

+0

ja, es funktioniert, getaggt Dank – outkast

Antwort

0
for link in soup.find_all('a'): 
    print(link.get('href')) 

werden alle 'a' drucken Elemente

Verwandte Themen