一、什么是爬虫?
爬虫(spider):小脚本程序,从网站上采集要下载的资源-->完成资源的高速下载
搜索引擎 采集数据的程序,在网络上搜索数据给搜索引擎使用
百度---->关键词--->包含关键词的所有网页
爬虫采集和普通采集的区别和有点:
区别:爬虫采集是数据的定向采集,成本较高,数据可定制,较强的针对性
二、爬虫采集的分类:
通用爬虫:一般用在搜索引擎中,针对所有数据进行广度采集【广度】搜索引擎作为爬虫,必须遵守民间组织约定的爬虫采集数据协议 ROBOT协议
聚焦爬虫:也成为定向爬虫,针对目标数据进行定向的数据采集【深度】,在不违反法律的前提下可以可以针对任何数据进行采集
技能要求:上手快,入门简单,对数据的分析要求高
增量爬虫:需要实时对历史采集数据进行更新【历史数据发生了改变】
累计爬虫:历史数据不会发生改变,一旦数据执行完成,数据就是固定的
三、python2和python3的区别
编码:python2使用的是asii编码;python3使用的是uncode编码
一个字符 ----两个字节---16位---表示英文
两个字符---4个字节---32位---表示汉字
python的主流版本有1x,2x,3,
目前web市场主要使用3.x 【网站的开发--文本字符数据的加交互--配合二进制文件的处理,更多的会使用到的比较通用的 unicode字符】
爬虫工作主要使用的是2.x【都是从网络上采集数据,采集的数据文本数据,二进制数据,为了更方便统一的进行数据的采集处理,使用python2操作更加灵活,支持的第三方模块也更多】
四、简单的开发流程
第一行:声明编码格式,支持中文的utf-8:#utf-8
第一步:
创建目标地址 如:target_url=''www.baidu.com''
第二步:
设置请求头 headers={ 请求头数据 }
第三步;
构造请求对象 我们经常在爬取数据过程中会对请求对象做一定的设置进行伪装 如 resquest=urllib2.Resquest(target_url,headers=headers)
构造操作对象(支持代理操作) proxy_handler=urllib2.ProxyHandler({'http':'ip:post'})
得到opener对象 :
proxy_opener=urllib2.build_opener(pro_handler)
第四步:
发送请求 得到服务器数据
response = proxy_opener.open(request)
第五步:
把文件写入到本地:
with open ('文件名',’wb‘) as f:
f.write (response.read())