本节书摘来自华章计算机《Python爬虫开发与项目实战》一书中的第3章,第3.1节,作者:范传辉著,更多章节内容可以访问云栖社区“华章计算机”公众号查看

第3章 初识网络爬虫

  从本章开始,将正式涉及Python爬虫的开发。本章主要分为两个部分:一部分是网络爬虫的概述,帮助大家详细了解网络爬虫;另一部分是HTTP请求的Python实现,帮助大家了解Python中实现HTTP请求的各种方式,以便具备编写HTTP网络程序的能力。

3.1 网络爬虫概述

  本节正式进入Python爬虫开发的专题,接下来从网络爬虫的概念、用处与价值和结构等三个方面,让大家对网络爬虫有一个基本的了解。
3.1.1 网络爬虫及其应用
  随着网络的迅速发展,万维网成为大量信息的载体,如何有效地提取并利用这些信息成为一个巨大的挑战,网络爬虫应运而生。网络爬虫(又被称为网页蜘蛛、网络机器人),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本。下面通过图3-1展示一下网络爬虫在互联网中起到的作用:
  网络爬虫按照系统结构和实现技术,大致可以分为以下几种类型:通用网络爬虫、聚焦网络爬虫、增量式网络爬虫、深层网络爬虫。实际的网络爬虫系统通常是几种爬虫技术相结合实现的。
  搜索引擎(Search Engine),例如传统的通用搜索引擎baidu、Yahoo和Google等,是一种大型复杂的网络爬虫,属于通用性网络爬虫的范畴。但是通用性搜索引擎存在着一定的局限性:
  1)不同领域、不同背景的用户往往具有不同的检索目的和需求,通用搜索引擎所返回的结果包含大量用户不关心的网页。

  2)通用搜索引擎的目标是尽可能大的网络覆盖率,有限的搜索引擎服务器资源与无限的网络数据资源之间的矛盾将进一步加深。
  3)万维网数据形式的丰富和网络技术的不断发展,图片、数据库、音频、视频多媒体等不同数据大量出现,通用搜索引擎往往对这些信息含量密集且具有一定结构的数据无能为力,不能很好地发现和获取。
  4)通用搜索引擎大多提供基于关键字的检索,难以支持根据语义信息提出的查询。
  为了解决上述问题,定向抓取相关网页资源的聚焦爬虫应运而生。
  聚焦爬虫是一个自动下载网页的程序,它根据既定的抓取目标,有选择地访问万维网上的网页与相关的链接,获取所需要的信息。与通用爬虫不同,聚焦爬虫并不追求大的覆盖,而将目标定为抓取与某一特定主题内容相关的网页,为面向主题的用户查询准备数据资源。
  说完了聚焦爬虫,接下来再说一下增量式网络爬虫。增量式网络爬虫是指对已下载网页采取增量式更新和只爬行新产生的或者已经发生变化网页的爬虫,它能够在一定程度上保证所爬行的页面是尽可能新的页面。和周期性爬行和刷新页面的网络爬虫相比,增量式爬虫只会在需要的时候爬行新产生或发生更新的页面,并不重新下载没有发生变化的页面,可有效减少数据下载量,及时更新已爬行的网页,减小时间和空间上的耗费,但是增加了爬行算法的复杂度和实现难度。例如:想获取赶集网的招聘信息,以前爬取过的数据没有必要重复爬取,只需要获取更新的招聘数据,这时候就要用到增量式爬虫。
  最后说一下深层网络爬虫。Web页面按存在方式可以分为表层网页和深层网页。表层网页是指传统搜索引擎可以索引的页面,以超链接可以到达的静态网页为主构成的Web页面。深层网络是那些大部分内容不能通过静态链接获取的、隐藏在搜索表单后的,只有用户提交一些关键词才能获得的Web页面。例如用户登录或者注册才能访问的页面。可以想象这样一个场景:爬取贴吧或者论坛中的数据,必须在用户登录后,有权限的情况下才能获取完整的数据。
  本书除了通用性爬虫不会涉及之外,聚焦爬虫、增量式爬虫和深层网络爬虫的具体运用都会进行讲解。下面展示一下网络爬虫实际运用的一些场景:
  1)常见的BT网站,通过爬取互联网的DHT网络中分享的BT种子信息,提供对外搜索服务。如图3-2所示。

  2)一些云盘搜索网站,通过爬取用户共享出来的云盘文件数据,对文件数据进行分类划分,从而提供对外搜索服务。如图3-3所示。

3.1.2 网络爬虫结构
  下面用一个通用的网络爬虫结构来说明网络爬虫的基本工作流程,如图3-4所示。

  网络爬虫的基本工作流程如下:
  1)首先选取一部分精心挑选的种子URL。
  2)将这些URL放入待抓取URL队列。
  3)从待抓取URL队列中读取待抓取队列的URL,解析DNS,并且得到主机的IP,并将URL对应的网页下载下来,存储进已下载网页库中。此外,将这些URL放进已抓取URL队列。
  4)分析已抓取URL队列中的URL,从已下载的网页数据中分析出其他URL,并和已抓取的URL进行比较去重,最后将去重过的URL放入待抓取URL队列,从而进入下一个循环。
  这便是一个基本的通用网络爬虫框架及其工作流程,在之后的章节我们会用Python实现这种网络爬虫结构。

《Python爬虫开发与项目实战》——第3章 初识网络爬虫 3.1 网络爬虫概述相关推荐

  1. python爬虫项目实例-Python爬虫开发与项目实战

    Python爬虫开发与项目实战(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1MFexF6S4No_FtC5U2GCKqQ 提取码:gtz1 复制这段内容后打开百度 ...

  2. python爬虫开发环境_python爬虫开发教程下载|Python爬虫开发与项目实战(范传辉 著)pdf 完整版_ - 极光下载站...

    Python爬虫开发与项目实战pdf扫描版下载.Python爬虫开发是一个Pthyon编程语言与HTML基础知识引领读者入门知识,重点讲述了云计算的相关内容及其在爬虫中的应用,进而介绍如何设计自己的爬 ...

  3. 《Python爬虫开发与项目实战》——1.6 小结

    本节书摘来自华章计算机<Python爬虫开发与项目实战>一书中的第1章,第1.6节,作者:范传辉著,更多章节内容可以访问云栖社区"华章计算机"公众号查看 1.6 小结 ...

  4. 《Python爬虫开发与项目实战》——第1章 回顾Python编程 1.1 安装Python

    本节书摘来自华章计算机<Python爬虫开发与项目实战>一书中的第1章,第1.1节,作者:范传辉著,更多章节内容可以访问云栖社区"华章计算机"公众号查看 第1章 回顾P ...

  5. Python编程:从入门到实践+爬虫开发与项目实战+网络编程基础+项目开发实战

    给还在苦苦自学Python的小伙伴们分享一波学习教程~有了它们,至少能节省50%的时间,少走一半的弯路. 书不在多,而在于精~ <Python编程:从入门到实践>豆瓣评分9.2 本书是针对 ...

  6. python爬虫基础项目教程_Python爬虫开发与项目实战_Python教程

    资源名称:Python爬虫开发与项目实战 内容简介: 随着大数据时代到来,网络信息量也变得更多更大,基于传统搜索引擎的局限性,网络爬虫应运而生,本书从基本的爬虫原理开始讲解,通过介绍Pthyon编程语 ...

  7. 笨办法学Python(第四版)最新版+Python爬虫开发与项目实战+Python网络数据采集+精通Scrapy网络爬虫

    笨办法学Python(第四版)最新版+Python爬虫开发与项目实战+Python网络数据采集+精通Scrapy网络爬虫 本资料为最新整理高清带目录pdf,百度网盘下载~~~ 本资料为最新整理高清带目 ...

  8. Python自动化开发基础 项目实战-监控系统 Day16-李杰-专题视频课程

    Python自动化开发基础 项目实战-监控系统 Day16-14487人已学习 课程介绍         课程特色:实战,细致,生动,深入浅出 适用人群:适合Python初学者 课程详情:从0基础开始 ...

  9. python书籍推荐-Python爬虫开发与项目实战

    所属网站分类: 资源下载 > python电子书 作者:doit 链接: http://www.pythonheidong.com/blog/article/466/ 来源:python黑洞网  ...

最新文章

  1. 每天导航超4亿公里,百度地图整合AI功能
  2. Java总结篇系列:Java多线程(二)
  3. Autofac3 在MVC4中的运用原理
  4. unity android 集成指南
  5. Xml+Xslt测试工具
  6. JUnit 5和Selenium –使用Gradle,JUnit 5和Jupiter Selenium设置项目
  7. java面试compareble_Java(面试必备):30 个 Java 集合面试问题和答案
  8. GMTC 大前端时代前端监控的最佳实践 1
  9. C# StreamReader.ReadLine统计行数的问题
  10. 空间复杂度,实现从excel导出到txt文件中的java代码自动构建,逻辑条件不同实现则不同...
  11. Android中下载编译Volley
  12. context创建过程解析(一)之deployDescriptors
  13. 机器学习,参数之-学习率设置
  14. 项目实施计划及总体设计报告(大纲)
  15. 同一方法被多个Aspect拦截, 修改切面@Around @Before的执行顺序
  16. 再次推荐下这本书 —— DDIA
  17. iOS 依赖注入:Objection 和 Typhoon
  18. 支持苹果18W-60W PD快充协议芯片JD6606S
  19. 虚拟机与宿主机网络互通配置
  20. python爬虫爬取东方财富网股票走势+一些信息

热门文章

  1. Oracle 多表查询 --笛卡尔集--左连接--右连接--1999 语法--满外连接
  2. python 编辑数学公式_Jupyter快速编辑高大上数学公式 泰勒展开式
  3. Android入门(10)| Fragment碎片详解
  4. 聊一下CPU占用高的解决方案
  5. Tensorflow(0)--Tensorboard
  6. wgs utm java,Java,将经纬度转换为UTM
  7. 为什么我喜欢单独编程
  8. 广州交警发布路考秘籍 科目三扣分点近80项
  9. ffmpeg解码器优化
  10. http协议与web本质