• 爬虫学习——第一章 初识爬虫


    初识爬虫

    互联网作为人们寻找信息的重要来源,我们对于搜索引擎根据关键词查找感兴趣的网站会产生一个问题,搜索引擎是如何找到这些我们想要的答案呢?其实,搜索引擎是使用爬虫不停地进行爬取,从而提供服务。
    当然面对大量的信息,作为个人也可以通过编写爬虫程序,获取想要的数据。这里呢,我将对爬虫的基本知识给大家做一个简单的介绍,好为以后的学习做好铺垫。

    爬虫的产生

    目前互联网迈向大数据时代,每天产生大量的数据,面对海量的数据,进行分析,能够从中产生极大的商业价值。获取数据的主要方式主要有以下几种

    1. 企业产生的数据
    2. 数据平台购买数据
    3. 政府/机构公开的数据
    4. 数据管理咨询公司的数据
    5. 爬取的网络数据

    爬虫的概念

    如果说网络是一张网,那么爬虫就是网上的一只小虫子,在网上遇到数据,便获取。
    当然爬虫所爬取的数据一般指的是网络上公开的并且可以访问的网页信息,而不是所谓的后台数据,更不是用户的数据。(一般这些都是黑客的所作所为)

    爬虫的用途

    认识网络爬虫,大家会有疑问,我们可以用爬虫做些什么。下面,我将列举一些常用的功能。

    1. 通过网络爬虫可以代替手工完成大量事情,对大量的数据进行数据的处理。
    2. 可以通过网络的爬取,自动过滤广告。
    3. 在推销的过程中,需要找一些目标用户以及其的联系方式,这时可以通过爬虫轻松采集。
      总而言之,爬虫一定程度上代替了手工访问网络,实现自动化采集互联网的数据,从而更高效的利用互联网的有用信息。

    爬虫的分类

    通常我们可以通过不同的维度,对网络爬虫进行分类,例如:按照使用场景,可以将爬虫分为通用爬虫和聚焦爬虫;按照爬取形式,分为累计式爬虫和增量式爬虫;按照爬取数据的存在方式,可以分为表层爬虫和深层爬虫。然而在实际的爬虫使用中,通常是几种爬虫技术的相结合。
    接下来,简单了解一下爬虫。

    通用爬虫和聚焦爬虫

    通用爬虫又称全网爬虫,它将爬取的对象从一些URL扩充到整个网络,主要是将网页下载至本地,形成备份;聚焦爬虫,则是对面向特定主题需求一种网络爬虫。
    1.通用爬虫
    爬行范围巨大,对于爬行速度和存储空间要求极大。因为需要爬取全网,通常采用并行的工作方式,但需要较长的时间。
    2.聚焦爬虫
    相比于通用爬虫,只需爬行特定的网站,从而极大节约时间,同时也极大的节省硬件和网络资源,能够很好的满足特定的需求。

    累积式爬虫和增量式爬虫

    1. 累积式爬虫
      累积式爬虫是指从某一个时间点开始,通过遍历的方式爬取系统所允许存储和处理的所有网页。在理想的软硬件环境下,经过足够的运行时间,冞用累积式爬取的策略可以保证爬取到相当规模的网页集合。但由于 web数据的动态特性,集合中网页的被爬取时间点是不同的,页面被更新的情况也不同,因此累积式爬取到的网页集合事实上并无法与真实环境中的网络数据保持一致。
    2. 增量式爬虫
      增量式爬虫是指在具有一定量规模的网络页面集合的基础上,采用更新数据的方式选取已有集合中的过时网页进行爬取,以保证所爬取到的数据与真实网络数据足够接近。进行增量式爬取的前提是,系统已经爬取了足够数量的网络页面,并具有这些页面被爬取的时间信息。
      与周期性爬行和刷新页面的网络爬虫相比,增量式爬虫只会在需要时爬行新产生或发生更新的页面,并不重新下载没有发生变化的页面,可有效减少数据下载量,及时更新己爬行的网页,减小时间和空间上的耗费,但是增加了爬行算法的复杂度和实现难度。
      面向实际应用环境的网络蜘蛛设计中,通常既包括累积式爬取,也包括增量式爬取。累积式爬取一般用于数据集合的整体建立或大规模更新阶段;而增量式爬取则主要针对数据集合的日常维护与即时更新。

    表层爬虫和深层爬虫

    Web 页面找存在方式可以分为表层网页和深层网页。针对这两种网页的爬虫分别叫作表层爬虫和深层爬虫。

    1. 表层爬虫
      爬取表层网页的爬虫叫作表层爬虫。表层网页是指传统搜素引擎可以素引的页 面,以超链接可以到达的静态网页为主构成的 web 页面。
    2. 深层爬虫
      爬取深层网页的爬虫就叫作深层爬虫。深层网页是那些大部分内容不能通过静态链接获取的、隐藏在搜素表单后的,只有用户提交一些关键词才能获得的 Web 页面。例如,用户注册后内容才可见的网页就属于深层网页。
      与表层网页相比,深层网页上的数据爬取更加困难,要采用一定的附加策略才能够自动爬取。
      深层爬虫爬行过程中最重要的部分就是表单填写,包含两种类型:
      (1)基于领域知识的表单填写:此方法一般会维持一个本体库,通过语义分析来选取合适的关键词填写表单。
      (2)基于网页结构分析的表单填写:此方法一般无领域知识或仅有有限的领域知识,将网页表单表示成 DOM 树,从中提取表单各字段的值。

    小结

    我呢通过这一篇文章,引领大家进入了爬虫的世界,首先讲解了爬虫产生的背景,然后闻述了爬虫的概念,并针对爬虫的用途和分类进行了简要介绍。

  • 相关阅读:
    Java学习路线图(完整详细2021版)
    Linux - 进程管理
    leetcode 28. 实现 strStr() (KMP算法实现)
    java172-使用class实现反射编程,创建对象
    CentOS8挂载本地ISO 配置本地YUM源
    hadoop生态圈面试精华之zookeeper(三)
    「Dr. Bomkus 的试炼」——最详尽的通关资讯!
    Redis系列---集群模式
    ahooks解决React闭包问题方法示例
    微信小程序开发的OA会议之会议,个人中心的页面搭建及模板以及自定义组件
  • 原文地址:https://blog.csdn.net/qq_42929788/article/details/127919661