爬虫简介
自动抓取互联网信息的程序
从一个词条的URL访问到所有相关词条的URL,并提取出有价值的数据
价值:互联网的数据为我所用
简单爬虫架构
实现爬虫,需要从以下几个方面考虑
爬虫调度端:启动爬虫,监视爬虫的运行情况
URL管理器:对将要爬取的URL和已经爬取过的URL的管理
↓
↓ 从URL管理器中选择一个待爬取的URL将其传递给网页下载器
↓
网页下载器:将URL指定的网页下载下来,存储成一个字符串
↓
↓字符串传递给网页解析器
↓
网页解析器:字符串解析出有价值的数据
解析出很多URL,被补充到URL管理器
运行流程
URL管理器
防止重复抓取,防止循环抓取
实现方式:
网页下载器 urllib2
将互联网上URL对应的网页下载到本地的工具
urllib2:下载网页
方法一: import urllib2
response=urllib2.urlopen('http://www.badidu.com')
#获取状态吗,如果是200表示获取成功
print response.getcode()
#读取内容
cont=response.read()
方法二:添加data,http header
import urllib2
request=urllib2.Request(url)
request.add_data('a','1')
resquest.add_header('User-Agent','Mozilla/5.0')
response=urllib2.urlopen(request0
方法三:添加特殊情景的处理器
网页解析器 BeautifulSoup:
从网页中提取出有价值数据的工具
几种网页解析器:
正则表达式 html.parser beautiful Soup lxml
↓ ↓
模糊匹配 结构化解析:DOM
完整实例 爬取百度百科Python词条相关的1000个页面数据