BeautifulSoup getting href [duplicate]
You can use find_all
in the following way to find every a
element that has an href
attribute, and print each one:
from BeautifulSoup import BeautifulSouphtml = '''<a href="some_url">next</a><span class="class"><a href="another_url">later</a></span>'''soup = BeautifulSoup(html)for a in soup.find_all('a', href=True): print "Found the URL:", a['href']
The output would be:
Found the URL: some_urlFound the URL: another_url
Note that if you're using an older version of BeautifulSoup (before version 4) the name of this method is findAll
. In version 4, BeautifulSoup's method names were changed to be PEP 8 compliant, so you should use find_all
instead.
If you want all tags with an href
, you can omit the name
parameter:
href_tags = soup.find_all(href=True)