摘要:
对于爬取下来的网页进行缓存,可以方便下次访问,无需再次下载。实现过程可以分为两大块,一是实现下载器,二是实现缓存器。 1. 下载器: 下载器功能:下载时先查看缓存中是否保存url对应的文件,不存在时再去访问网页端,并将结果加入到缓存中,下载器代码如下: 在爬取网页时,使用下载器代码如下: 2. 缓存 阅读全文
摘要:
1,相关知识 robots.txt: 一些网站会定义robots.txt文件(https://www.example.com/robots.txt),规定了网页爬取的相关限制,查看其内容,遵守规则可以避免过早IP被封。 下面为知乎robots.txt部分内容(https://www.zhihu.co 阅读全文
摘要:
1. 图的相关概念 树是一种特殊的图,相比树,图更能用来表示现实世界中的的实体,如路线图,网络节点图,课程体系图等,一旦能用图来描述实体,能模拟和解决一些非常复杂的任务。图的相关概念和词汇如下: 顶点vertex:图的节点 边Edge:顶点间的连线,若边具有方向时,组成有向图(directed gr 阅读全文
摘要:
1,二叉树(Binary tree) 二叉树:每一个节点最多两个子节点,如下图所示: 相关概念:节点Node,路径path,根节点root,边edge,子节点 children,父节点parent,兄弟节点sibling, 子树subtree,叶子节点leaf node, 度level,树高high 阅读全文
摘要:
1, 无序链表(Unordered linked list) 链表是有若干个数据节点依次链接成的数据结构,如下图所示,每一个数据节点包括包括数据和一个指向下一节点的指针。(python中的list就是由链表来实现的) 无序链表操作: python实现无序链表 定义了Node类和UnorderedLi 阅读全文
摘要:
1,查找算法 常用的查找算法包括顺序查找,二分查找和哈希查找。 1.1 顺序查找(Sequential search) 顺序查找: 依次遍历列表中每一个元素,查看是否为目标元素。python实现代码如下: #无序列表 def sequentialSearch(alist,item): found = 阅读全文
摘要:
1,双端队列定义 双端队列:其两端都可以入列和出列的数据结构,如下图所示,队列后面(rear)可以加入和移出数据,队列前面(front)可以加入和移出数据 双端队列操作: 操作示例: 2, 用python实现双端队列 Deque的代码实现如下: 3,Deque的应用 回文检查(Palindrome 阅读全文
摘要:
1,队列的定义 队列:是一种先进先出的数据结构,如下图所示,现进去的数据在队列前面(front),先出队列,后进入队列的数据在后面(rear),后出队列。 队列常用操作: 操作示例: 2,用python实现队列 可以用python的list来实现队列,其定义如下面代码所示。 (其中enqueue和d 阅读全文
摘要:
1,栈的定义 栈:先进后出的数据结构,如下图所示,先进去的数据在底部,最后取出,后进去的数据在顶部,最先被取出。 栈常用操作: s=Stack() 创建栈 s.push(item) 将数据item放在栈的顶部 s.pop() 返回栈顶部数据,并从栈中移除该数据 s.peek() 返回栈顶部数据,但不 阅读全文
摘要:
websocket协议规定了客户端和服务端socket连接和通信时的规则,一是连接握手时的认证,二是通信时的数据报文解析。其整个流程的简单分析如下: (websocket简介参见:https://www.zhihu.com/question/20215561/answer/40316953) 1.w 阅读全文