2014-07-25 10 views
7

Próbuję uzyskać listę div id ze strony. Kiedy wypisuję atrybuty, otrzymuję listę ids.piękna zupa pobiera tag.id

for tag in soup.find_all(class_="bookmark blurb group") : 
    print(tag.attrs) 

skutkuje:

{'id': 'bookmark_8199633', 'role': 'article', 'class': ['bookmark', 'blurb', 'group']} 
{'id': 'bookmark_7744613', 'role': 'article', 'class': ['bookmark', 'blurb', 'group']} 
{'id': 'bookmark_7338591', 'role': 'article', 'class': ['bookmark', 'blurb', 'group']} 
{'id': 'bookmark_7338535', 'role': 'article', 'class': ['bookmark', 'blurb', 'group']} 
{'id': 'bookmark_4530078', 'role': 'article', 'class': ['bookmark', 'blurb', 'group']} 

Więc wiem, że istnieją identyfikatory. Jednak, gdy zamiast tego wypiszę tag.id, otrzymam listę "Brak". Co ja tu robię źle?

Odpowiedz

12

można uzyskać dostęp atrybuty tagu traktując tag jak słowniku (documentation):

for tag in soup.find_all(class_="bookmark blurb group") : 
    print tag.get('id') 

Powodem tag.id nie działa jest to, że jest to równoważne tag.find('id'), co prowadzi do None ponieważ tam nie jest id znacznik znaleziony (documentation).