随笔分类 - Python
摘要:以梨视频为例分析页面请求抓取网页数据。本次抓取梨视频生活分类页面下的部分视频数据,并保存到本地。 一、分析网页 打开抓取网页,查看网页代码结构,发现网页结构里面存放视频的地址并不是真正的视频地址。 进入视频详情页面查看后,可以在response中找到真正的视频地址。保存这个地址的并不是标签,而是一个
阅读全文
摘要:数据结构——链表 一.简介 二.Python实现 ♦链表节点 ♦单向链表 ♦添加节点 头插法:从链表的头部(左端)插入 尾插法:从链表的尾部(右端)插入 ♦插入节点 ♦删除节点 ♦修改节点 ♦获取节点 ♦遍历链表 ♦反转链表 ♦双向链表 ♦双链表节点删除 ♦双链表节点插入 1 class Node:
阅读全文
摘要:一.Django中的请求 Django Web中从一个http请求发起,到获得响应返回html页面的流程大致如下: http请求发起 经过中间件 http handling(request解析) url mapping(url匹配找到对应的View) 在View中进行逻辑(包括调用Model类进行数
阅读全文
摘要:一.Celery简介 Celery是一个简单,灵活,可靠的分布式系统,用于处理大量消息,同时为操作提供维护此类系统所需的工具。它是一个任务队列,专注于实时处理,同时还支持任务调度。 中间人boker: broker是一个消息传输的中间件。每当应用程序调用celery的异步任务的时候,会向broker
阅读全文
摘要:单例模式 单例模式(Singleton Pattern)属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建,并提供一种访问其唯一对象的方式。 特点: 1.单例类只能有一个实例 2.单利类必须自己创建自己的唯一实例 3.单例类
阅读全文
摘要:观察者模式 内容:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时, 所有依赖于它的对象都得到通知并被自动更新。观察者模式又称“发布-订阅”模式。 角色: 抽象主题(Subject) 具体主题(ConcreteSubject)——发布者 抽象观察者(Observer) 具体观察者(Con
阅读全文
摘要:二叉树 简介: 二叉树是每个结点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。 二叉树二叉树的链式存储: 将二叉树的节点定义为一个对象,节点之间通过类似链表的链接方式来连接。 节点定义: 二叉树的遍历: 二叉树的遍历方式: 前
阅读全文
摘要:抽象工厂模式 内容:定义一个工厂类接口,让工厂子类来创建一系列相关或相互依赖的对象。 例:生产一部手机,需要手机壳、CPU、操作系统三类对象进行组装,其中每类对象都有不同的种类。对每个具体工厂,分别生产一部手机所需要的三个对象。 相比工厂方法模式,抽象工厂模式中的每个具体工厂都生产一套产品。 角色:
阅读全文
摘要:队列的概念 只允许在一端插入数据操作,在另一端进行删除数据操作的特殊线性表;进行插入操作的一端称为队尾(入队列),进行删除操作的一端称为队头(出队列);队列具有先进先出(FIFO)的特性。
阅读全文
摘要:链表是由一系列节点组成的元素集合。每个节点包含两部分,数据域item和指向下一个节点的指针next。通过节点之间的相互连接,最终串联成一个链表。
阅读全文
摘要:class Stack(object): """ 使用列表实现栈 """ def __init__(self): self.stack = [] def push(self, element): """ 添加元素进栈 :param element: :return: ...
阅读全文
摘要:# _*_ coding=utf-8 _*_ """ 快速排序: 通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比 另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序, 整个排序过程可以递归进行,以此达到整个数据变成有序序列。 时间复杂度: 快速排序的最坏运行情况是 O(n²),比如说顺序数列的快排。但它的平摊期望时...
阅读全文
摘要:# 插入排序,时间复杂度O(n²) def insert_sort(arr): """ 插入排序;以朴克牌为例,从小到大排序。摸到的牌current与手里的每张牌进行对比, 手里的牌大于current,则手里的牌往后移;手里的最后一张牌小于current,current最大,结束循环。 :param arr: :return: """ fo...
阅读全文
摘要:# 选择排序,时间复杂度O(n²) def select_sort(arr): """ 首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置。 再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。 重复第二步,直到所有元素均排序完毕。 :param arr: :return: """ for i in r...
阅读全文
摘要:冒泡排序 一,介绍 冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的
阅读全文
摘要:一、准备工作 本次使用Selenium,浏览器为Chrome,并配置好ChromDriver 二、分析 1.模拟点击验证按钮:可以直接使用Selenium完成。 2.识别滑块的缺口位置:先观察图片中缺口的位置以及周围边缘,利用原图与其对比检测来识别缺口位置。 同时获取原图与缺口图片,设定一个对比阀值
阅读全文
摘要:一,OCR OCR,即Optical Character Recognition,光学字符识别,通过扫描字符,分析形状,然后将其翻译成电子文本的过程。tesserocr是Python的一个OCR识别库,但其实是对tesseract做的一层封装。安装tesserocr之前需要先按照tesseract。
阅读全文
摘要:使用Beautiful Soup 1.简介 简单来说Beautiful Soup是Python的一个HTML或XML解析库,可以用来方便的从网页中提取数据。Beautiful Soup提供了一些简单的Python式的函数来打处理导航,搜索,修改分析树等功能。它是一个工具箱,通过解析文档为用户提供需要
阅读全文
摘要:使用request库和正则表达式爬取猫眼电影信息。 1.爬取目标 猫眼电影TOP100的电影名称,时间,评分,等信息,将结果以文件存储。 2.准备工作 安装request库。 3.代码实现
阅读全文