目标对象为静态网站
爬虫架构
- URL管理器
- 网页下载器(urllib2)
- 网页解析器(BeautifulSoup)
对象介绍
URL管理器:管理带抓取的URL集合和已经抓取的URL集合
避免重复抓取、循环抓取
功能:
- 添加新URL到待爬集合中
- 判断URL是否在容器中已有
- 判断是否爬取结束
- 获取待爬URL
- 将待爬URL转为已爬
存取方式:
- 内存:set()
- 关系数据库:MySQL
- 缓存数据库:redis
网页下载器
常见的网页下载器:urllib2、requests
import urllib2
response = urllib2.urlopen('http://www.baidu.com')
print response.getcode()#获取状态码,200表示获取成功
cont = response.read()#读取内容
import urllib2
request = urllib2.Request(url)#创建request对象
request.add_data('a','1')#添加用户数据
request.add_header('Aser-Agent','Mozilla/5.0')#设置头信息
response = urllib2.urlopen(request)
import urllib2,cookielib
cj = cookielib.CokieJar()
#HTTPCookieProcessorProxyHandler,HTTPSHandler,HTTPRedirectHandler
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
urllib2.install_opener(opener)
response = urllib2.urlopen("http://www.aidu.com/")
应用
- 资源聚合
- 数据分析