为什么要做爬虫?
都说现在是"大数据时代",那数据从何而来?
企业产生的用户数据:
数据平台购买数据:
政府/机构公开的数据:
- 中华人民共和国国家统计局数据 http://data.stats.gov.cn/index.htm
- 世界银行公开数据 https://data.worldbank.org.cn/
- 纳斯达克 http://www.nasdaq.com/zh
数据管理咨询公司:
-
爬取网络数据:如果需要的数据市场上没有,或者不愿意购买,那么可以选择招/做一名爬虫工程师,自己动手丰衣足食。拉勾网Python爬虫职位
- 通俗的讲: 就是模拟 客户端发起网络请求 ,接收请求的响应,按照一定的规则,自动的抓取互联网信息的程序。
- 原则上只要浏览器能够做的事情,爬虫都能够实现
百度百科:网络爬虫介绍 https://baike.baidu.com/item/网络爬虫
爬虫的基本原理:
- 我们可以将互联网比喻为一张大网,网络爬虫我们想象为网上的蜘蛛,网页与网页之间的联系我们理解为节点,爬虫就相当于是访问网页,获取网页的信息,又通过节点可以爬取另一个网站,然后不停的通过一个个节点即访问一个个网页,这样网站的数据就可以被我们获取下来了。
爬虫的用途
- 搜索引擎
- 咨询新闻网站
- 购物助手(慧慧购物)
- 数据分析与研究积累原始数据资源
- 抢票软件等
关于Python爬虫,我们需要学习掌握的知识有:
- Python基础语法学习(基础知识)
- HTML 前端知识
- 数据提取的持久化(文本、数据库)
- 爬虫(Spider)、反爬虫(Anti-Spider)、反反爬虫(Anti-Anti-Spider)之间的斗争....(header请求头,)
- Scrapy框架以及scrapy-redis分布式策略(第三方框架)
PHP
- 2014年左右最火的语言,不过多线程支持不好,不适合做爬虫
JAVA
- 生态完善,支持第三方库多,但是代码量大,不利于维护重构。是Python最大的竞争对手
C/C++
- 底层语言,仅次于编绘语言。运行效率很高,学习成本高,代码量超大(底层模块自己写)。
Python
- 代码简介,语法优美,支持大量第三方模块,支持多任务,有成熟的spider框架。
爬虫的分类
- 根据使用场景,网络爬虫可分为 通用爬虫 和 聚焦爬虫 两种.
通用爬虫
- 通用网络爬虫 是 捜索引擎抓取系统(Baidu、Google、Yahoo等)的重要组成部分。主要目的是将互联网上的网页下载到本地,形成一个互联网内容的镜像备份 ,提取重要数据(做过滤,分词,去广告)。
通用搜索引擎(Search Engine)工作原理
- 通用网络爬虫
- 从互联网中搜集网页,采集信息,这些网页信息用于为搜索引擎建立索引从而提供支持,它决定着整个引擎系统的内容是否丰富,信息是否即时,因此其性能的优劣直接影响着搜索引擎的效果。
-
DNS:将域名转化为ip的技术
流程
第一步:抓取网页 搜索引擎网络爬虫的基本工作流程如下:
- 1.首先选取一部分的种子URL,将这些URL放入待抓取URL队列;
- 2.取出待抓取URL,解析DNS得到主机的IP,并将URL对应的网页下载下来,存储进已下载网页库中,并且将这些URL放进已抓取URL队列。
- 3.分析已抓取URL队列中的URL,分析其中的其他URL,并且将URL放入待抓取URL队列,从而进入下一个循环....
搜索引擎的爬取url通过什么方式获得?
- 通过网页外链
- 通过链接提交
- 各大搜索引擎公司与DNS服务商合作
Robots协议:(也叫爬虫协议、机器人协议等),全称是“网络爬虫排除标准”(Robots Exclusion Protocol),网站通过Robots协议告诉搜索引擎 哪些页面可以抓取,哪些页面不能抓取。
缺点:
1,返回结果千篇一律,没有很好的针对性,不能对特殊的的用户群体返回对应的数据
2,需要遵循robot协议
3,搜索引擎通常获得文本,图像音频有困难
聚焦爬虫
根据需求产生,
只抓取与需求相关的数据。
我们更多会实现聚焦爬虫。
网友评论