Python爬虫是什么?一文带你了解Python爬虫

img

作为程序员,相信大家对“爬虫”这个词并不陌生,身边常常会有人提这个词,在不了解它的人眼中,会觉得这个技术很高端很神秘。不用着急,我们的爬虫系列就是带你去揭开它的神秘面纱,探寻它真实的面目。

img

爬虫是什么

网络爬虫(又被称为网页蜘蛛,网络机器人),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。另外一些不常使用的名字还有蚂蚁、自动索引、模拟程序或者蠕虫。

通俗地讲,我们把互联网比作一张大蜘蛛网,每个站点资源比作蜘蛛网上的一个结点,爬虫就像一只蜘蛛,按照设计好的路线和规则在这张蜘蛛网上找到目标结点,获取资源。

文末领取全套最新Python学习资源!

为什么我们需要使用爬虫呢?

大家可以想象一下一个场景:你非常崇拜一个微博名人,对他的微博非常着迷,你想把他十年来微博上的每一句话摘抄下来,制作成名人语录。这个时候你怎么办呢?手动去 Ctrl+C 和 Ctrl+V 吗?这种方法确实没错,数据量小的时候我们还可以这样做,但是数据成千上万的时候你还要这样做吗?

我们再来想象另一个场景:你要做一个新闻聚合网站,每天需要定时去几个新闻网站获取最新的新闻,我们称之为 RSS 订阅。难道你会定时去各个订阅网站复制新闻吗?恐怕个人很难做到这一点吧。

上面两种场景,使用爬虫技术可以很轻易地解决问题。所以,我们可以看到,爬虫技术主要可以帮助我们做两类事情:一类是数据获取需求,主要针对特定规则下的大数据量的信息获取;另一类是自动化需求,主要应用在类似信息聚合、搜索等方面。

爬虫的分类

从爬取对象来看,爬虫可以分为通用爬虫和聚焦爬虫两类。

通用网络爬虫又称全网爬虫(Scalable Web Crawler),爬行对象从一些种子 URL 扩充到整个 Web,主要为搜索引擎和大型 Web 服务提供商采集数据。这类网络爬虫的爬取范围和数量巨大,对于爬行速度和存储空间要求较高,对于爬行页面的顺序要求相对较低。例如我们常见的百度和谷歌搜索。我们输入关键词,它们会从全网去找关键词相关的网页,并且按照一定的顺序呈现给我们。

聚焦网络爬虫(Focused Crawler),是指选择性地爬取那些与预先定义好的主题相关页面的网络爬虫。和通用网络爬虫相比,聚焦爬虫只需要爬取特定的网页,爬取的广度会小很多。例如我们需要爬取东方财富网的基金数据,我们只需要针对东方财富网的页面制定规则爬取就行。

通俗地讲,通用爬虫就类似于一只蜘蛛,需要寻找特定的食物,但是它不知道蜘蛛网的哪个节点有,所以它只能从一个节点开始寻找,遇到节点就看一下,如果有食物就获取食物,如果这个节点指示某某节点有食物,那它就顺着指示去寻找下个节点。而聚焦网络爬虫就是这只蜘蛛知道哪个节点有食物,它只需要规划好路线到达那个节点就能获取到食物。

浏览网页的过程

在用户浏览网页的过程中,我们可能会看到许多好看的图片,比如 http://image.baidu.com/ ,我们会看到几张图片以及百度搜索框,类似下面图片这样:

img

baidu_pic_index

这个过程其实就是用户输入网址之后,经过DNS服务器,找到服务器主机,向服务器发出一个请求,服务器经过解析之后,发送给用户的浏览器 HTML、JS、CSS 等文件,浏览器解析出来,用户便可以看到形形色色的图片了。

因此,用户看到的网页实质是由 HTML 代码构成的,爬虫爬来的便是这些内容,通过分析和过滤这些 HTML 代码,实现对图片、文字等资源的获取。

文末领取全套最新Python学习资源!

URL的含义

URL,即统一资源定位符,也就是我们说的网址,统一资源定位符是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。

URL 的格式由三部分组成:

第一部分是协议(或称为服务方式)。

第二部分是存有该资源的主机IP地址(有时也包括端口号)。

第三部分是主机资源的具体地址,如目录和文件名等。

由于爬虫的目标是获取资源,而资源都存储在某个主机上,所以爬虫爬取数据时必须要有一个目标的 URL 才可以获取数据,因此,它是爬虫获取数据的基本依据,准确理解它的含义对爬虫学习有很大帮助。

爬虫的流程

我们接下来的篇章主要讨论聚焦爬虫,聚焦爬虫的工作流程如下图:

img

spider_flow

首先我们需要有一个种子 URL 队列,这个队列中的 URL 相当于我们蜘蛛爬行的第一个结点,是我们在大网中爬行的第一步。

对队列中的每一个 URL 进行请求,我们会得到响应内容,通常响应内容为HTML。如果响应内容里面有我们的目标 URL,提取出来加入 URL 队列中。

解析响应内容,提取我们需要的数据。

存储数据,我们可以将数据存储到数据库、文件等。

从这个爬虫的流程来看,大家应该能够联想到学习爬虫需要学习的关键步骤。首先我们需要像浏览器一样请求某个 URL ,来获取某个主机的资源,那么请求的方法和正确地获取内容就是我们学习的重点。我们获取到资源(也就是请求 URL 之后获得的响应内容)之后,我们需要对响应的内容进行解析,从而获取到对我们有价值的数据,这里面的解析方法就是学习的重点了。我们获取到数据之后,接下来就需要存储数据了,数据的存储方法也很重要。

所以我们学习的爬虫技术,实际上可以归纳为请求解析存储三个基本问题。熟练掌握这三个问题对应的解决方法,爬虫技术就算是掌握了。大家在学习爬虫的过程中,紧紧围绕这三个问题展开,就不会走弯路了。

以上就是今天的全部内容分享,觉得有用的话欢迎点赞收藏哦!

Python经验分享

学好 Python 不论是用于就业还是做副业赚钱都不错,而且学好Python还能契合未来发展趋势——人工智能、机器学习、深度学习等。
小编是一名Python开发工程师,自己整理了一套最新的Python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。如果你也喜欢编程,想通过学习Python转行、做副业或者提升工作效率,这份【最新全套Python学习资料】 一定对你有用!

小编为对Python感兴趣的小伙伴准备了以下籽料 !

对于0基础小白入门:

如果你是零基础小白,想快速入门Python是可以考虑培训的!

  • 学习时间相对较短,学习内容更全面更集中
  • 可以找到适合自己的学习方案

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习、Python量化交易等学习教程。带你从零基础系统性的学好Python!

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。


最新全套【Python入门到进阶资料 & 实战源码 &安装工具】(安全链接,放心点击)

我已经上传至CSDN官方,如果需要可以扫描下方官方二维码免费获取【保证100%免费】

*今天的分享就到这里,喜欢且对你有所帮助的话,记得点赞关注哦~下回见 !

  • 17
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值