都说现在是"大数据时代",那数据从何而来?
- 企业产生的数据:大型的公司有大量的用户,每天都会产生大量的数据,
大公司会对数据进行统计和归类,中小型的公司也开始收集和整理数据
百度指数,新浪指数,BAT腾讯浏览指数
- 数据平台:通过各行各业业的数据汇总,会花费大量的人力物力去收集数据
数据堂,贵阳数据平台
3.政府/机构:是由个地方政府机关单位逐级的上报,最终由国家汇总
中华人民共和国国家统计局数据
4.数据管理咨询公司:通过大量的人力整理个各行各业的数据,会和其他公司合作
和专家合作成圣大量的数据
麦肯西
挨森哲
艾瑞咨询
5.爬虫:如果以上的数据平台不能够满足我们的数据需求的时候,或者说数据数据的价格非常敖贵,这时我们就可以通过爬虫去获取数据
什么是爬虫网络爬虫?
网络爬虫(又被称为网页蜘蛛,网络机器人), 是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。
通俗的讲: 就是模拟客户端发起网络请求,接收请求的响应,按照一定的规则,自动的抓取互联网信息的程序。
理论上:通过浏览器看到的数据,我们一般都是可以获取到的
爬虫有什么作用:
搜索引擎
商品比价(慧慧购物助手)
知乎的数据分析平台(知乎专栏,数据冰山)
如何去写一个爬虫:
- 网页的三大特征:
- 每一个网页都有一个唯一的url(统一资源定位符),来进行定位
- 网页都是通过HTML(超文本)文本展示的
- 所有的网页都是通过HTTP<超文本传输协议>(HTTPS)协议来传输的
- 爬虫的流程:
1.分析网站,得到目标url
2.根据url,发起请求,获取页面的HTML源码
3.从页面源码中提取数据
a.提取到目标数据,做数据的筛选和持久化存储
b.从页面中提取到新的url地址,继续执行第二部操作
4.爬虫结束:所有的目标url都提取完毕,并且得到数据了,再也没有其他请求任务了,这是意味着爬虫结束
关于Python爬虫,我们需要学习掌握的基本知识有:
Python基础语法学习(基础知识)
静态页面,动态页面HTML页面源码的获取(数据抓取)
HTML页面的(非结构化)数据提取,结构化数据的提取(数据提取)
数据提取的持久化(文本、数据库)
Scrapy框架以及scrapy-redis分布式策略(第三方框架)
爬虫(Spider)、反爬虫(Anti-Spider)、反反爬虫(Anti-Anti-Spider)之间的斗争....
爬虫分类
- 通用爬虫 聚焦爬虫
- 通用爬虫:是搜索引擎的重要组成部分
目的:竟可能的将所有的互联网上的网页下载到本地,经过预处理(去噪,分词,去广告),最终将数据存储到本地,做一个镜像备份,形成一个检索系统
通用爬虫抓取网页的流程:
1.选取一部分的url作为种子url,将这些url放入到带爬取的任务队列里面
2.从带爬取的任务队列中取出url,发起请求,将获取到的网页源码存储到本地, 并将已经爬取过的url,放入已爬取队列中
3.从已爬取url的响应结果中,分析提取其他的url地址,继续添加到待爬取队列中 ,之后就是不断的循环,直到所有的url都提取完毕
通用爬虫中种子url如何获取
1.通过网站提交自己的网站地址(https://ziyuan.baidu.com/linksubmit/url)
2.搜索引擎会和DNS服务商合作,拿到最新的网站地址(DNS服务:将我们的域转换为对应ip的一种技术)
3.网站中包含的其他外链
通用爬虫的整体流程:数据的获取->预处理(分词,去噪,去广告...)->存储->提供检索接口|排名(网站排名)
网站排名:
1)根据用户的访问量,网站的流量越多,越靠前
2)竞价排名:谁出价高,谁排在前面
通用爬虫的缺点:
1)必须准守robot协议:就是一个规范,告诉搜索引擎,哪些目录下的资源允许爬虫,
哪些目录下的资源不允许爬取(https://www.taobao.com/robots.txt)
'User-agent':该项值用来表示是哪家的搜索引擎
'allow':允许被爬取的url
'disllow':不允许被爬取的url
2)搜索引擎返回的都是网页,并且返回的90%的都是无用的数据
3) 不能够根据不同的用户的需求或者锁检索结果返回不同的结果
4) 通用爬虫对于对媒体的文件不能够获取
- 聚焦爬虫:聚焦爬虫是面向主题的爬虫,再爬取数据的过程中会对数据进行筛选
往往只会爬虫与需求相关的数据