图论和网络爬虫
1.BFS和DFS:
广度优先算法Breadth-First Search
深度优先算法Depth-First Search
2.欧拉七桥问题的证明:
每一块连接的陆地抽象为顶点,每座桥当成图的一条边,则根据图形可以证明无法不重复的遍历所有的顶点
度:和每个顶点相连接的边的数据
定理:如果一个图能从一个顶点出发,每条边不重复的遍历一遍回到这个顶点,那么每一顶点的度必须为偶数
证明:每个顶点不重复的遍历,那么进、出此顶点必须走不同的边,即其度为偶数
3.网络爬虫的工程原理:
a.深度、广度优先的选择:
i.在考虑时间、互联网的动态性下,搜索引擎的爬虫被定义为”如何在优先的时间内,最多的爬下最重要的网页“
所以应采取BFS,优先下载网站的首页
ii.分布式架构:
必须以分布式的架构来构建整个爬虫系统,考虑到网络通信的成本问题,通常以几台机器构成一个组,对一个网页进行DFS的下载
iii.总结:
网络爬虫不是简单的BFS或者DFS,是一个相对复杂的下载优先级排序的方法,需要一个调度系统来统一的协调,由其决定下载哪一个RUL,而对尚未下载的URL,用一个优先级队列进行保存
b.页面分析和URL的提取
c.记录下载过的URL的大的HashTable
解决存储、修改的问题:
i.调度程序根据URL决定哪组服务器来下载此URL,避免每台机器都去判断
ii.在分工明确的基础上,对Hash表的访问和更新,就可以批处理了