【浅谈爬虫】一名合格的Python爬虫工程师必须具备技能—具体了解四大Python爬虫分类以及爬虫基本原理实现

一、网络爬虫概述

网络爬虫(又被称作为网络蜘蛛、网络机器人,在某社区中经常被称为网页追逐者),可以按照指定的规则(网络爬虫的算法)自动浏览或抓取网络中的信息,通过Python可以很轻松地编写爬虫程序或者脚本。爬虫技术只要是能写后端的语言都可以进行爬虫编写,如:Java、Python、PHP、C/C++/C#、Go、NodeJs。

二、网络爬虫的分类

网络爬虫按照实现的技术和结构可以分为以下几种类型:
通用网络爬虫聚焦网络爬虫增量式网络爬虫深层网络爬虫等。
在实际的网络爬虫中,通常是这几类爬虫的组合体。

1、通用网络爬虫

通用网络爬虫又叫作全网爬虫(Scalable Web Crawler),通用网络爬虫的爬行范围和数量巨大,正是由于其爬取的数据是海量数据,所以对于爬行速度和存储空间要求较高。通用网络爬虫在爬行页面的顺序要求上相对较低,同时由于待刷新的页面太多。
通常采用并行工作方式,因此需要较长时间才可以刷新一次页面,所以存在着一定的缺陷。这种网络爬虫主要应用于大型搜索引擎中,有非常高的应用价值。通用网络爬虫主要由初始URL集合、URL队列、页面爬行模块、页面分析模块、页面数据库、链接过滤模块等构成。

2、聚焦网络爬虫

聚焦网络爬虫(Focused Crawler)也叫主题网络爬虫(Topical Crawler),是指按照预先定义好的主题,有选择地进行相关网页爬取的一种爬虫。我们爬虫工作中绝大多数是聚焦爬虫,针对某一项工作去进行爬取数据。
和通用网络爬虫相比,它不会将目标资源定位在整个互联网当中,而是将爬取的目标网页定位在与主题相关的页面中。这样极大地节省了硬件和网络资源,保存的页面也由于数量少而速度更快。聚焦网络爬虫主要应用在对特定信息的爬取,为某一类特定的人群提供服务。

3、增量式网络爬虫

增量式网络爬虫(Incremental Web Crawler),所谓增量式,对应着增量式更新。增量式更新指的是在更新的时候只更新改变的地方,而未改变的地方则不更新,所以增量式网络爬虫在爬取网页的时候只会在需要的时候爬取新产生或发生更新的页面,对于没有发生变化的页面则不会爬取。这样可有效地减少数据下载量,减小时间和空间上的耗费,但是在爬行算法上需要增加一些难度。

4、深层网络爬虫

Web页面按存在方式可以分为表层网页(Surface Web)和深层网页(Deep Web)。表层网页指的是不需要提交表单,使用静态的超链接就可以直接访问的静态页面。
深层网页指的是那些大部分内容不能通过静态链接获取的、隐藏在搜索表单后面的,需要用户提交一些关键词才能获得的Web页面。深层页面需要访问的信息数量是表层页面信息数量的几百倍,所以深层页面是主要的爬取对象。
深层网络爬虫主要由六个基本功能模块(爬行控制器、解析器、表单分析器、表单处理器、响应分析器、LVS控制器)和两个爬虫内部数据结构(URL列表、LVS表)等部分构成。其中 LVS(LabelValue Set)表示标签/数值集合,用来表示填充表单的数据源。

三、网络爬虫基本原理

在这里插入图片描述
网络爬虫的基本工作流程如下:
(1)获取初始的URL,该URL地址是用户自己制订的初始爬取的网页。
(2)爬取对应URL地址的网页时,获取新的URL地址。
(3)将新的URL地址放入URL队列中。
(4) 从URL 队列中读取新的URL,然后依据新的URL爬取网页,同时从新的网页中获取新的URL地址,重复上述的爬取过程。
(5)设置停止条件,如果没有设置停止条件时,爬虫会一直爬取下去,直到无法获取新的URL地址为止。设置了停止条件后,爬虫将会在满足停止条件时停止爬取。

四、爬虫技术总结:

针对常见Python爬虫岗位,我们需要掌握:
1、请求库:requests、urllib (对数据进行请求并获得响应数据)
2、解析库:xpath语法、BeautifulSoup库、Re正则表达式 (前两者随便,re正则必须会,前两者只能针对纯html标签进行解析,re正则对所有都可以)
3、发爬虫机制: 验证码、代理请求、js反爬、… (反爬虫手段越多越好)
4、请求端:浏览器端爬取、App端爬虫
5、爬虫框架:Scrapy、Scrapy-Redis、Crawl、… (前三种必须会)
6、最好会安卓逆向工程 (一般不要求)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值