前言
小到出门扯淡,大到国家政策,无一例外,比较常见的三个字”大数据”,处处表示着已经进入大数据时代,那在大数据时代,最重要的是什么呢?毫无疑问,数据!而数据又是怎么来的呢?下面简单列一下:
- 企业生产的用户数据
- 比如像BAT等公司,拥有庞大的用户群体,用户的任何行为都会成为他们数据源的一部分
- 数据平台购买数据
- 比如从国家数据中心 数据市场等购买
- 政府 机构公开数据
- 比如统计局 银行公开数据等
- 数据管理公司
- 比如艾瑞咨询等
- 爬虫获取网络数据
- 通过网络爬虫技术,爬去网络数据,以供使用
概念
网络爬虫(又被称为网页蜘蛛,网络机器人,在FOAF社区中间,更经常的称为网页追逐者),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。(以上概念来自百度百科)
简而言之 就是通过程序去网络上抓取自己想要的数据信息。
爬虫分类
通用网络爬虫
概念
搜索引擎用的爬虫系统
目标
尽可能把互联网上网页下载下来,放到自有服务器形成备份,再对这些网页做提取关键字等处理,对外提供用户检索接口
抓取流程
- 选择目标URL,放入待爬取队列
- 从队列中取出URL,解析DNS得到主机IP,接着去IP对应的服务器中下载HTML,保存到本地服务器,将此URL放入已爬取队列
- 分析网页内容,根据需求查找网页内其他URL,继续执行第二步,直至爬取条件结束
一句话:取网页–>存储数据–>内容处理–>提供检索
缺点
- 只能提供和文本相关内容,不能提供多媒体和二进制文件等
- 提供的结果不具有特殊性,不能针对不同背景领域的人提供不同的搜索结果
- 不能理解为人类语义上的检索
爬行策略
- 深度优先
- 按照深度由低到高的顺序,依次访问下一级网页链接,直到不能再深入为止
- 广度优先
- 按照网页内容目录层次深浅来爬行页面,处于较浅目录层次的页面首先被爬行
聚焦网络爬虫
概念
又称主题网络爬虫,选择性的爬取与预先定义好的主题相关方面的爬虫。
优势
- 只爬取与主题相关的页面,极大的节省了硬件和网络资源
- 保存页面少,更新快
- 更好的满足特定人群对特定领域信息需求
其它
同通用网络爬虫
爬虫应用示例
- 抓取社交网站妹纸信息
- 抓取网络视频数据
- 抓取网络小说 段子等信息
- 只要能通过浏览器访问,都可以get到
连载规划
如何抓取HTML页面
- HTTP请求处理
- urllib requests等模拟浏览器发送请求
解析服务器响应内容
- re xpath bs4 jsonpath pyquery等使用
- 对需要提取数据定义匹配规则,来匹配筛选出目标内容
采集动态HTML,验证码处理
- 通用的动态页面采集:Selenium+PhantomJS(无界面),模拟真实浏览器加载js ajax等非静态页面数据
- Tesseract:机器学习库,机器图像识别系统,可以处理简单的验证码,复杂的可以通过手动输入或专门的打码平台
Scrapy框架(Scrapy Pyspider)
- 高定制性 高性能,异步网络框架twisted,下载数据速度快
- 提供数据存储 下载 提取规则等组件
分布式策略(scrapy-redis)
- scrapy-redis,在scrapy基础上添加了一套以Redis数据库为核心的组件
- 让Scrapy框架支持分布式功能,在Redis中做请求指纹去重 请求分配 数据临时存储等
结语
学习和记录的过程是漫长而枯燥的,从现在起,打满鸡血,时刻督促提醒自己,希望能够坚持到底。最后一句话,与君共勉–>路漫漫其修远兮,吾将上下而求索~