《数学之美》第9章 图论和网络爬虫
1 图论
图论的起源可追溯到大数学家欧拉所处的那个年代。
图论中所论的图由一些节点和连接这些节点的弧组成。
广度优先搜索(Breadth-First Search, 简称BFS)
深度优先搜索(Depth-First Search, 简称DFS)
2 网络爬虫
在网络爬虫中,人们使用一种“散列表”(Hash Table, 也叫哈希表)而不是记事本记录网页是否下载过的信息。
现在的互联网非常庞大,不肯能通过一台或几台计算机服务器就能完成下载任务。一个商业的网络爬虫需要成千上万个服务器,并且通过高速网络连接起来。
3 图论的两点补充
3.1 欧拉七桥问题的证明
对于图中的每一个顶点,将与之相连的边的数量定义为它的度。
定理:如果一个图能够从一个顶点出发,每条边不重复地遍历一遍回到这个顶点,那么每一顶点的度必须为偶数。
证明:假如能够便利图的每一条边各一次,那么对于每个顶点,需要从某条边进入顶点,同时从另一条边离开这个顶点。进入和离开顶点的次数时相同的,因此每个顶点有多少条进入的边,就有多少条出去的边。也就是说,每个顶点相连的边的数量是成对出现的,即每个顶点的度必须是偶数。
3.2 构建网络爬虫的工程要点
首先,用BFS还是DFS?
网络爬虫对网页遍历的次序不是简单的DFS和BFS,而是有一个相对复杂的下载优先级排序的方法。
管理这个优先级排序的子系统一般称为调度系统,由它来决定当一个网页下载完成后,接下来该下载哪一个。
在爬虫中,BFS的成分多一些。
第二,页面的分析和URL的提取
若你发现一些网页明明存在,但搜索引擎没有收录,一个可能的原因是网络爬虫中解析程序没有成功解析网页中不规范的脚本程序。
第三,记录哪些网页已经下载过的小本本--URL表
为了防止一个网页被下载多次,我们可以用一个散列表来记录哪些网页已经下载过,再遇到这个网页时,我们就可以跳过它。
如何解决存储散列表的服务器的通信就成了整个爬虫系统的瓶颈。
首先,明确每台下载服务器的分工。
然后,在明确分工的基础上,判断URL是否下载就可以批处理了,比如每次向散列表发送一批询问,或者每次更新一大批散列表的内容。
《数学之美》第9章 图论和网络爬虫相关推荐
- 《数学之美》——第九章 个人笔记
数学之美 最近在读<数学之美>这本书,做一下个人笔记.看的是PDF,看完后会买一本的哦!版权意识还是有的. ps:图片文字都是这本书中的内容,侵权立删.会有点自己的理解. 第九章 图 ...
- 《数学之美》选章精读
曾经花了一个月的时间阅读受推荐的书籍<数学之美>,对基于统计的自然语言处理的历史作一个大致的了解,每周精读一章,做下了一些粗略的笔记,算是有个交代吧. 第9章-图论和网络爬虫 概念 图论起 ...
- 数学之美系列六 -- 图论和网络爬虫 (Web Crawlers)
数学之美系列六 -- 图论和网络爬虫 (Web Crawlers) [离散数学是当代数学的一个重要分支,也是计算机科学的数学基础.它包括数理逻辑.集合论.图论和近世代数四个分支.数理逻辑基于布尔运算, ...
- 数学之美 第3章 统计语言模型
数学之美 第3章 统计语言模型 回顾一下: 前面两章都是基础知识,告诉我们自然语言的起源基础,和一些发展过程遇到的问题,第二章告诉我们规则:理解自然语言(即分析语句和获取语义)这种处理方法不可能实现智 ...
- 《数学之美》——第一章 个人笔记
数学之美 最近在读<数学之美>这本书,做一下个人笔记.看的是PDF,看完后会买一本的哦!版权意识还是有的. ps:图片文字都是这本书中的内容,侵权立删.会有点自己的理解. 第一章 文 ...
- python网络爬虫的项目背景_第四章 Python即时网络爬虫项目: 内容提取器的定义
1. 项目背景 在python即时网络爬虫项目启动说明中我们讨论一个数字:程序员浪费在调测内容提取规则上的时间,从而我们发起了这个项目,把程序员从繁琐的调测规则中解放出来,投入到更高端的数据处理工作中 ...
- 《数学之美》第一章读后感
第一章分别讲述了早期信息的传播,文字和数字的发展,文字和语言背后的数学三个部分. 我从中了解到了信息传递,不论是早期的远古社会,还是如今快速发展的互联网时代,其规律都是异曲同工的.比如信息传播的模型都 ...
- 数学之美-读书笔记6-10章
文章目录 数学之美 第六章 信息的度量和作用 1信息熵 2信息的作用 3互信息 4延伸阅读 第7章 贾里尼克和现代语言处理 1早年生活 2 从水门事件到莫妮卡·莱文斯基 3一位老人的奇迹 第八章 简单 ...
- 度量相似性数学建模_数学之美读书笔记
2020年6月读,先通读一遍,随后为写读书笔记又重新读了一遍,收获颇丰,虽然没有很多数学或者编程方面的知识,但正如作者所说,这本书讲述的是道,而非术. 读这本书让我领略到了科学的趣味,并不是枯燥的敲代 ...
最新文章
- Django博客系统(详情评论数据展示)
- S5700三层交换机 复杂网络环境设置默认路优先级实战
- vCenter功能基本介绍
- django models中批量导入数据
- [Cocos2d-x For WP8]Menu菜单
- JavaScript自学笔记(1)---表单验证,let和const,JSON文件
- 电子计算机说明文作文,关于电脑说明文作文(精选3篇)
- SQL 数据库 函数
- vi/vim命令使用
- Selenium FirePath的安装和使用
- 唯品会等被纳入MSCI指数,中概股迎来春天
- 惠普电脑按F12锁屏如何解?
- 图片base64解码转换
- (Animator详解一)mixamo动画导入Unity的一些配置
- FTP数据抓包上传下载图片(wireshark)
- 谈谈等保二级与三级的区别?
- 批量删除html网页,ie浏览器收藏夹网页批量删除方法
- 滚轮JAVA_java滚轮
- Archlinux安装MacBook无线网卡驱动 (Broadcom 4360)
- 短视频脚本怎么写?6个套路
热门文章
- 寻找优秀的程序员之实战指南-2
- Tensorflow-gpu1.13.1 和 Tensorflow-gpu2.0.0共存之安装教程
- 模拟整个地球:英伟达Earth-2超级计算机即将上线
- 编程语言“考古”:曾经影响一代人的BASIC,原来还有前身
- “达观杯”NLP算法大赛再启航,丰厚奖金、直通Offer等你来拿!
- LeetCode: 38. Count and Say
- 苏州人民很快能坐上无人驾驶巴士,技术来自这家前Waymo工程师创立的公司
- 取消学术型硕士,增扩博士,北京大学这个学院做出研究生培养结构调整
- 110道Python面试真题
- 大二发SCI!这位985大学学霸,获MIT博士全奖!