初识爬虫,爬虫原理?爬虫是什么?为什么爬虫用python比较流行?
什么是爬虫?
-
简单⼀句话就是代替⼈去模拟浏览器进⾏⽹⻚操作
- 爬虫 (又叫蜘蛛、网络机器人),是一种按照一定规则,自动地抓取网络信息的程序或者脚本,
-
它另外还有一些不常使用的名字:蚂蚁、自动索引、模拟程序、蠕虫。
爬虫」(又叫蜘蛛、网络机器人),是一种按照一定规则,自动地抓取网络信息的程序或者脚本, -
它另外还有一些不常使用的名字:蚂蚁、自动索引、模拟程序、蠕虫。
-
从本质上来说,「爬虫」就是利用自动化程序从网上获取我们需要的数据。
-
- 爬虫 (又叫蜘蛛、网络机器人),是一种按照一定规则,自动地抓取网络信息的程序或者脚本,
-
我们常用的百度,就是一个很大的「爬虫」。
-
你有没有想过为什么百度搜索会这么强大?
-
这是因为百度会把各个网站的数据爬取下来,存储在自己的服务器上。
-
而检索之后会得到一些超链接,点击各个超链接跳转,就可以访问其他网站了。
爬虫就是利用自动化程序从网上获取我们需要的数据。
-
-
网络就像一张巨大的蜘蛛网,而爬虫则像这只蜘蛛一样在网络上收集需要的数据
为什么需要爬虫?
为其他程序提供数据源 如搜索引擎(百度、Google等)、数据分析、⼤数据等 等
当今世界是大数据时代,每时每刻都有大量的数据在交互,那么数据从何而来,我们如何大量的获取批量数据?
–>使用爬虫
企业获取数据的⽅式?
- 1.公司⾃有的数据
- 2.第三⽅平台购买的数据 (百度指数、数据堂)
- 3.爬⾍爬取的数据
为什么选择python
能做爬虫的当然不止一种语言,但是python却有着更好的理由去让我们选择python
Python 做爬⾍相较于其它语言的优势:
PHP : 对多线程、异步⽀持不太好
Java : 代码量⼤,代码笨重
C/C++ : 代码量⼤,难以编写
Python : ⽀持模块多、代码简介、开发效率⾼ (scrapy框架)
还有:
- 易学习,作为一款初中生都在学的语言,python无疑更简单
- 跨平台,对Linux和windows都有不错的支持。
- 科学计算,数值拟合:Numpy,Scipy
- 可视化:2d:Matplotlib(做图很漂亮), 3d: Mayavi2
- 复杂网络:Networkx
- 统计:与R语言接口:Rpy
- 交互式终端
爬虫原理
爬虫在浏览器工作原理中,所做的事情,就是替代"人"和"浏览器"这个环节,模拟他们的操作对服务器进行请求。
基本工作流程:
发起请求 -> 获取返回内容 -> 解析返回的内容 -> 存储数据
爬虫分类
通⽤⽹络爬⾍
例如 baidu google yahu
聚焦⽹络爬⾍
根据既定的⽬标有选择的抓取某⼀特定主题内容
增量式⽹络爬⾍
指对下载⽹⻚采取增量式的更新和只爬⾏新产⽣的或者已经 发⽣变化的⽹⻚爬⾍
深层⽹络爬⾍:
指那些⼤部分内容不能通过静态链接获取的、隐藏在搜索表单 后的,只有⽤户提交⼀些关键词才能获得的web⻚⾯ 例如 ⽤户登录注册才能 访问的⻚⾯
robots协议
「爬虫」在某种情况下会给目标服务器造成很大的压力,甚至导致服务器崩溃。
因此部分服务器运行商,会想方设法防止「爬虫」访问自己的服务器。
这里就需要谈到【robots】协议!
【robots】协议是国际互联网界通行的道德规范,基于以下原则建立:
-
1、搜索技术应服务于人类,同时尊重信息提供者的意愿,并维护其隐私权;
-
2、网站有义务保护其使用者的个人信息和隐私不被侵犯。
简单来说,它告诉网络搜索引擎的漫游器(也就是我们的「爬虫」),此网站中的哪些内容是不应被搜索引擎的漫游器获取的,哪些是可以被漫游器获取的。
查看一个网站的【robots】协议只需要在该网站首页后添加【/robots.txt】就可以了。
Allow:可以访问
Disallow:禁止访问
【robots】协议只是一个道德规范,并不是强制要求。