之前的代码都是对单个静态页面进行抓取,这是人为简化的例子。
爬虫的主要目的就是为了沿着网络抓取需要的内容。它们的本质是一种递归的过程。它们首先需要获得网页的内容,然后分析页面内容并找到另一个URL,然后获得这个URL的页面内容,不断重复这一个过程。
让我们以维基百科为一个例子。
我们想要将维基百科中凯文·贝肯词条里所有指向别的词条的链接提取出来。
# -*- coding: utf-8 -*-
# @Author: HaonanWu
# @Date: 2016-12-25 10:35:00
# @Last Modified by: HaonanWu
# @Last Modified time: 2016-12-25 10:52:26
from urllib2 import urlopen
from bs4 import BeautifulSoup
html = urlopen('http://en.wikipedia.org/wiki/Kevin_Bacon')
bsObj = BeautifulSoup(html, "html.parser")
for link in bsObj.findAll("a"):
if 'href' in link.attrs: