首页 > 其他分享 >网络爬虫入门

网络爬虫入门

时间:2022-11-23 15:41:15浏览次数:34  
标签:网页 入门 URL 网络 爬虫 爬取 页面


网络爬虫,又称作网络蜘蛛、网络机器人,在某社区中经常被称为网页追逐者。可以按照指定的规则(网络爬虫的算法)自动浏览或抓取网络中的信息,通过Python可以很轻松地编写爬虫程序或者是脚本。

在生活中网络爬虫经常出现,搜索引擎就离不开网络爬虫。例如,百度搜索引擎的爬虫名字叫做百度蜘蛛(BaiduSpider)。百度蜘蛛,是百度搜索引擎的一个自动程序。它每天都会在海量的互联网信息中进行爬取,收集并整理互联网上的网页、图片视频等信息。然后当用户在百度搜索引擎中输入对应的关键词时,百度将收集的网络信息中找出相关内容,按照一定顺序将信息展现给用户。百度蜘蛛在工作的过程中,搜索引擎会构件一个调度程序来调度百度蜘蛛的工作,这些调度程序都是需要使用一定的算法来实现的,采用不同的算法,爬虫的工作效率也会有所不同,爬取的结果也会有所差异。所以在学习爬虫的时候不仅需要了解爬虫的实现过程,还需要了解一些常见的爬虫算法。在特定的情况下,还需要开发者自己制定相应的算法。

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

1.通用网络爬虫

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

2.聚焦网络爬虫

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

3.增量式网络爬虫

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

4.深层网络爬虫

在互联网中,web页面按存在方式可以分为表层网页(Surface Web)和深层网页(Deep Web),表层网页指的是不需要提交表单,使用静态的超链接就可以直接访问的静态页面。深层网页指的是那些大部分内容不能通过静态链接获取的、隐藏在搜索表单后面的,需要用户提交一些关键词才能获得的Web页面。深层页面需要访问的信息数量是表层页面信息数量的几百倍,所以深层页面是主要的爬取对象。

深层网络爬虫主要通过6个基本功能的模块(爬行控制器、解析器、表单控制器、表单处理器、响应分析器、LVS控制器)和两个爬虫内部数据结构(URL列表、LVS表)等部分构成。其中LVS(Label Value Set)表示标签/数值集合,用来表示填充表单的数据源。

网络爬虫的基本工作流程如下:
(1)获取初试的URL,该URL地址是用户自己制定的初始爬取的网页。

(2)爬取对应URL地址的网页时,获取新的URL地址。

(3)将新的URL地址放入URL队列中。

(4)从URL队列中读取新的URL,然后依据新的URL爬取网页,同时从新的网页中获取新的URL地址,重复上述的爬取过程。

(5)设置停止条件,如果没有设置停止条件,爬虫会一直爬取下去,直到无法获取新的URL地址为止。设置了停止条件后,爬虫会将在满足停止条件时停止爬取。

标签:网页,入门,URL,网络,爬虫,爬取,页面
From: https://blog.51cto.com/u_15888443/5881354

相关文章

  • 卷积神经网络(CNN)(中)
    4.GoogleNet GoogleNet(也可称作Inception)是在2014年由GoogleDeepMind公式的研究员提出的一种全新的深度学习结构,并取得了ILSVRC2014比赛项目的第一名。GooleNet共有22层,并......
  • Pygame入门
    Pygame是跨平台Python模块,专为电子游戏设计,包含图像、声音等,创建在SDL(simpledirectmedialayer)基础上,允许实时电子游戏研发而不会被低级语言,如C或是更低级的汇编语言束缚。......
  • 网络原理练习题(含答案)
    一、填空题(每空1分,共10分) 1. 在采用电信号表达数据的系统中,数据有数字数据和__模拟数据____两种。2.国际标准化组织ISO提出的不基于特定机型、操作系统或公司的网络体系结构......
  • 全球名校AI课程库(41)| WUSTL · 深度神经网络应用全案例实操系列课程『Applications of
    <divalign=center><imgalt="T81-558;ApplicationsofDeepNeuralNetworks;深度神经网络应用案例实操"src="http://tva1.sinaimg.cn/large/0060yMmAly1h6wx48cg8hj31k......
  • Python爬虫如何实现多线程异步
    如果自己的电脑配置高操作系统可以多任务运行的,应该首先要考虑单核CPU是怎么执行多任务的,操作系统会让各个任务交替执行。例如:任务1执行0.02秒,切换到任务2,任务2执行0.02秒,再......
  • python编程(gevent入门)
        大家都知道python脚本执行的时候不是很快,特别是python下面的多线程机制,长久以来一直被大家所诟病。所以,很多同学都在思考python下面有没有什么方法可以让python执行......
  • 3.2 Docker最新入门教程-Docker入门-将应用程序容器化
    3.2将应用程序容器化对于本指南的其余部分,您将使用一个在Node.js中运行的简单待办事项列表管理器。如果您不熟悉Node.js,请不要担心。本指南不需要JavaScript经验。......
  • 3.1 Docker最新入门教程-Docker入门-概述
    3.1概述欢迎!我们很高兴您想学习Docker。本指南包含有关如何开始使用Docker的分步说明。您将在本指南中学到和做的一些事情是:构建并运行镜像作为容器使用DockerHub共......
  • 【入门教程】tmux精简教程
    Tmux是一个linux下的服务端会话管理工具,可以持久化服务端的session,非常适合用命令行管理服务器的情况。【安装】Ubuntu或Debian$sudoapt-getinstalltmuxCentOS......
  • 网络层IP地址
    1.概述IP地址的组成为什么要使用逻辑地址(IP地址)来标识网络设备而不采用网卡设备本身就有的唯一标识物理地址(MAC地址)呢?IP地址的使用到底是基于什么考虑呢?因为使......