我想创建一个简单的Web爬虫以获得乐趣.我需要网络抓取工具来获取一个页面上所有链接的列表.python库是否有任何内置函数可以使这更容易?感谢任何知识赞赏.
这对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)]