Это на самом деле очень просто с BeautifulSoup .
from BeautifulSoup import BeautifulSoup
[element['href'] for element in BeautifulSoup(document_contents).findAll('a', href=True)]
# [u'http://example.com/', u'/example', ...]
И последнее: вы можете использовать urlparse.urljoin
, чтобы сделать все URL-адреса абсолютными. Если вам нужен текст ссылки, вы можете использовать что-то вроде element.contents[0]
.
А вот как вы можете связать все это вместе:
import urllib2
import urlparse
from BeautifulSoup import BeautifulSoup
def get_all_link_targets(url):
return [urlparse.urljoin(url, tag['href']) for tag in
BeautifulSoup(urllib2.urlopen(url)).findAll('a', href=True)]