04 2020 档案

摘要:mysql的存储引擎 三种存储方式 InnoDB (默认) 一个文件存储表结构,一个存储数据和目录(索引) memory 一个文件存储数据结构,数据存储在内存(差的快,早期都是这种存储方式,现在有redis了) MyIsam 一个文件表结构,一个存储数据,还有一个放目录(索引) 数据库中数据的存储方 阅读全文
posted @ 2020-04-28 18:41 zz洲神在此 阅读(440) 评论(0) 推荐(0)
摘要:一、变量与对象 关系图如下: 1、变量,通过变量指针引用对象 变量指针指向具体对象的内存空间,取对象的值。 2、对象,类型已知,每个对象都包含一个头部信息(头部信息:类型标识符和引用计数器) 注意 变量名没有类型,类型属于对象(因为变量引用对象,所以类型随对象),变量引用什么类型的对象,变量就是什么 阅读全文
posted @ 2020-04-17 14:27 zz洲神在此 阅读(198) 评论(0) 推荐(0)
摘要:哈希表(散列表) 一、概述 根据设定的 哈希函数H(key) 和 处理冲突的方法 将一组关键字影像到一个有限的连续的地址集(区间)上,并以关键字在地址集中的“像”作为记录在表中的存储位置,这种表便成为 哈希表 ,这一映像过程称为哈希造表或 散列 ,所得存储位置称 哈希地址 或 散列地址 。 上面所提 阅读全文
posted @ 2020-04-15 23:34 zz洲神在此 阅读(289) 评论(0) 推荐(0)
摘要:一.封装 把很多数据封装到⼀个对象中. 把固定功能的代码封装到⼀个代码块, 函数, 对象, 打包成模块. 这都属于封装的思想. 具体的情况具体分析. 比如. 你写了⼀个很⽜B的函数. 那这个也可以被称为封装. 在⾯向对象思想中. 是把⼀些看似⽆关紧要的内容组合到⼀起统⼀进⾏存储和使⽤. 这就是封装. 阅读全文
posted @ 2020-04-15 18:11 zz洲神在此 阅读(283) 评论(0) 推荐(0)
摘要:一 什么是面向对象的继承 比较官方的说法就是: 继承(英语:inheritance)是面向对象软件技术当中的一个概念。如果一个类别A“继承自”另一个类别B,就把这个A称为“B的子类别”,而把B称为“A的父类别”也可以称“B是A的超类”。继承可以使得子类别具有父类别的各种属性和方法,而不需要再次编写相 阅读全文
posted @ 2020-04-15 17:24 zz洲神在此 阅读(274) 评论(0) 推荐(0)
摘要:一.Python 类的空间问题 1.1 何处可以添加对象属性 总结:对象的属性不仅可以在__init__里面添加,还可以在类的其他方法或者类的外面添加。 1.2 何处可以添加类的静态属性 总结:类的属性不仅可以在类内部添加,还可以在类的外部添加。 1.3 对象如何找到类的属性 之前咱们都学习过,实例 阅读全文
posted @ 2020-04-15 17:09 zz洲神在此 阅读(208) 评论(0) 推荐(0)
摘要:一.面向过程与函数式编程 1.1 面向过程编程vs函数式编程 在没了解面向对象之前,写的代码都是面向过程式编程 在我们学习函数后就是在面向函数编程 通过对比可知:函数编程较之面向过程编程最明显的两个特点: 1,减少重复的代码。 2,增强代码的可读性。 二.面向对象初识 2.1 函数式编程vs面向对象 阅读全文
posted @ 2020-04-15 16:56 zz洲神在此 阅读(146) 评论(0) 推荐(0)
摘要:增量式爬取 概念:监控网站数据更新的情况,以便于爬取到最新更新出来的数据。 实现核心:去重 实战中去重的方式:记录表 记录表需要记录什么?记录的一定是爬取过的相关信息。 爬取过的相关信息:例如每一步电影的详情页的url 只需要使某一组数据,改组数据可以作为该部电影的唯一标识即可,刚好电影详情页的ur 阅读全文
posted @ 2020-04-13 23:26 zz洲神在此 阅读(313) 评论(0) 推荐(0)
摘要:分布式爬虫 实现方式:scrapy+redis(scrapy结合这scrapy redis组件) 原生的scrapy框架是无法实现分布式 需要搭建一个分布式的机群,让后让机群中的每一台电脑执行同一组程序,让其对同一组资源 进行联合且分布的数据爬取。 为什么原生的scrapy框架无法实现分布式 1.调 阅读全文
posted @ 2020-04-13 23:24 zz洲神在此 阅读(223) 评论(0) 推荐(0)
摘要:crawlscrapy 其实他是Spider的一个子类,Spider爬虫文件中爬虫类的父类 子类的功能一定是多余父类的 作用:被用作与专业实现全站数据爬取 将一个页面下所有页面对应的数据进行爬取 基本使用: 1.创建一个工程 2.cd 工程 3.创建一个基于CrawlSpider的爬虫文件 scra 阅读全文
posted @ 2020-04-13 23:17 zz洲神在此 阅读(475) 评论(0) 推荐(0)
摘要:爬虫五大核心组件 请求传参的实现深度爬取 代码实现: 中间件 作用:批量拦截请求和响应 爬虫中间件(暂时未讲) 下载中间件(推荐) 拦截请求: 篡改请求Url 伪装请求头信息 UA cookie 设置请求代理(重点) 拦截响应 篡改响应数据 代理操作必须使用中间件才可以实现 process_exce 阅读全文
posted @ 2020-04-13 23:05 zz洲神在此 阅读(1260) 评论(0) 推荐(0)
摘要:scrapy框架 简介:所谓的框架就是集合一个很多功能且具有很强的通用性的一个项目模板 scrapy:是一个专门用于异步爬虫的框架 高性能的数据解析。请求发送。持久化存储,全站数据爬取,中间件,分布式。。。 环境安装: mac,linux:pip install scrapy windows: 首先 阅读全文
posted @ 2020-04-12 22:26 zz洲神在此 阅读(184) 评论(0) 推荐(0)
摘要:JS解密+混淆破解 爬取的网站:https://www.aqistudy.cn/html/city_detail.html 更清晰的查看博客:博客地址:https://www.cnblogs.com/bobo zhang/p/11243138.html 分析: 1.修改查询条件(城市的名称+时间范围 阅读全文
posted @ 2020-04-12 22:04 zz洲神在此 阅读(11671) 评论(2) 推荐(2)
摘要:基于selenium实现自动化爬取数据 如果想具体查看selenium自动化模块的更多功能请看我的博客测试分类中有介绍 selenium 概念:基于浏览器自动化的模块 自动化:可以通过代码指定一系列的行为动作,然后将其作用到浏览器中。 pip install selenium selenium和爬虫 阅读全文
posted @ 2020-04-12 21:55 zz洲神在此 阅读(1477) 评论(0) 推荐(0)
摘要:线程池实现爬取数据 协程基础 概念部分 代码部分 多任务操作 多任务的异步爬虫 阅读全文
posted @ 2020-04-12 21:42 zz洲神在此 阅读(283) 评论(0) 推荐(0)
摘要:爬取梨视频中的短视频数据 以上获取梨视频发现他是动态加载的video中src的url地址。所以我们无法可见即可得。 经过抓包工具中发的get请求中response选项卡中发现srcUrl中有这个src属性。并且里面得网址就是需要的视频数据网址。所以找到那块标签获取text文本内容,通过正则筛选出来u 阅读全文
posted @ 2020-04-12 21:13 zz洲神在此 阅读(3799) 评论(0) 推荐(0)
摘要:反扒机制:代理操作 代理操作: 在爬虫中,所谓的代理指的是什么? 就是代理服务器 代理服务器的作用: 就是用来转发请求和响应的 在爬虫中为什么需要使用代理服务器: 如果我们的爬虫对服务器短时间内发出高频请求。那么服务器检测到这样一个异常请求,就会将该请求的对应设备IP禁掉,这样就无法给服务器发请求获 阅读全文
posted @ 2020-04-12 21:08 zz洲神在此 阅读(676) 评论(0) 推荐(0)
摘要:反扒机制:图片的懒加载 站长素材高清图片下载 反扒机制:图片懒加载,广泛应用于一些图片网站中 只有当图片真正显示在浏览器可视化范围内才会将img标签的伪属性变成真正的属性,如果是requests发请求,requests请求是没有可视化范围的,因此我们一定要解析的是img伪属性的属性值(图片地址,例如 阅读全文
posted @ 2020-04-12 20:59 zz洲神在此 阅读(768) 评论(0) 推荐(0)
摘要:数据解析 正则 bs4 xpath(常用) 如何爬取图片数据? 方式1:基于requests 方式2:基于urllib urllib模块作用和requests模块一样,都是基于网络请求的模块。 当requests问世后就迅速的替代了urllib模块 重点: 上述两种爬取图片操作不同之处在于使用url 阅读全文
posted @ 2020-04-12 20:54 zz洲神在此 阅读(535) 评论(0) 推荐(0)
摘要:动态加载的数据 例子1:爬取豆瓣电影中的电影详情数据 url:https://movie.douban.com/ 1.什么是动态加载的数据: 我们通过requests模块进行数据爬取无法每次都是可见即可得,有些数据是通过非浏览器地址栏中得url请求到的地址。而是其他请求请求到的数据,那么这些通过其他 阅读全文
posted @ 2020-04-12 19:56 zz洲神在此 阅读(1053) 评论(0) 推荐(0)
摘要:requests模块 爬虫中一个基于网络请求的模块 pip install requests 作用:模拟浏览器发起请求 编码流程: 1 . 指定url 2 . 发起请求 3 . 获取响应数据(爬取到的页面源码数据) 4 . 进行持久化存储 简单例子: 实现一个简易网页采集器 基于搜狗针对指定不同的关 阅读全文
posted @ 2020-04-12 19:53 zz洲神在此 阅读(420) 评论(0) 推荐(0)
摘要:Anacanda开发环境 Anaconda是基于数据分析和机器学习的集成环境给我们集成好了数据分析和机器学习对应的各种环境和模块)。 jupyter:是Anaconda集成环境提供的基于浏览器可视化的编码工具 注意事项 在环境搭建的时候只需要安装Anaconda即可,安装路径必须是纯英文的,且不可以 阅读全文
posted @ 2020-04-12 19:42 zz洲神在此 阅读(888) 评论(0) 推荐(0)
摘要:快速排序 快速排序 将列表中第一个元素设定为基准数字,赋值给mid变量,然后将整个列表中比基准小的数值放在基准的左侧,比基准大的数字放到基准的右侧,然后将基准数字左右两侧的序列在根据此方法进行排放。 定义两个指针,low指向最左侧,high指向最右侧 然后对最右侧指针进行向左移动,移动规则是:如果指 阅读全文
posted @ 2020-04-12 19:39 zz洲神在此 阅读(117) 评论(0) 推荐(0)
摘要:希尔排序 关键变量:增量gap gap:初始值为len(alist) // 2 1.表示分组的组数 2. 每一组数据之间的间隔 插入排序就是增量为1的希尔排序 阅读全文
posted @ 2020-04-12 19:33 zz洲神在此 阅读(68) 评论(0) 推荐(0)
摘要:插入排序 插入排序 思路: 需要将原始序列分成两部分:有序部分,无序部分 将无序部分中的元素逐一插入到有序部分中 注意:初始情况下,有序部分为乱序序列的第一个元素,无序部分为乱序序列的n 1个元素 乱序序列:[3,8,5,7,6] [3,,,,8,5,7,6]: 3就是初始的有序部分,8,5,7,6 阅读全文
posted @ 2020-04-12 19:31 zz洲神在此 阅读(124) 评论(0) 推荐(0)
摘要:选择排序 def pao1(alist): x = 1 while x alist[i+1]: 如果前面的元素大于后面的元素,交换两个元素的位置 alist[i],alist[i+1] = alist[i+1],alist[i]` 选择排序是遍历整个列表,设置一个index索引为0,每次用该列表的索 阅读全文
posted @ 2020-04-12 13:19 zz洲神在此 阅读(114) 评论(0) 推荐(0)
摘要:冒泡排序 通过对列表中的元素进行两两比较,数值大的交换位置,知道最后一个,依次比较,得出有序序列。 冒泡思路 发现上述代码已经可以将序列中的最大值放置到合适的位置,然后我们就可以将上述操作继续作用到n 1个元素对应的新序列,则就可以将n 1个元素对应的最大值放置到了n 1个元素的最后位置。 结论:发 阅读全文
posted @ 2020-04-12 13:18 zz洲神在此 阅读(113) 评论(0) 推荐(0)
摘要:递归 假设你在祖母的阁楼中发现一个上锁的神秘手提箱。 祖母告诉你,钥匙可能在下面这个盒子中。 这个盒子里有盒子,而盒子里的盒子又有盒子。钥匙就在某个盒子中。 为找到钥匙,你将使用什么算法?先想想这个问题,再接着往下看。 第一种方法使用的是while循环:只要 盒子堆不空,就从中取一个盒子,并在其中仔 阅读全文
posted @ 2020-04-12 13:12 zz洲神在此 阅读(146) 评论(0) 推荐(0)
摘要:二分查找 二分查找只可以作用在有序序列中。 循环low版 递归版 阅读全文
posted @ 2020-04-12 12:56 zz洲神在此 阅读(121) 评论(0) 推荐(0)
摘要:二叉树 根节点:树中上部的节点 左叶子节点 右叶子节点 子树 完整的子树 一个根节点,左右叶子节点组成 不完整的子树 根节点,左叶子节点 根节点,右叶子节点 根节点 特点:每一个节点都可以作为某一颗子树的根节点 构造二叉树 想法:创建列表,每次循环判断节点的left和right,如果不为空将该节点放 阅读全文
posted @ 2020-04-12 12:53 zz洲神在此 阅读(135) 评论(0) 推荐(0)
摘要:链表 相对于顺序表,链表结构可以充分利用计算机内存空间,实现灵活的内存动态管理且进行扩充时不需要进行数据搬迁。 链表(Linked list)是一种常见的基础数据结构,是一种线性表,但是不像顺序表一样连续存储数据,而是每一个结点(数据存储单元)里存放下一个结点的信息(即地址) 构造一个链表 . is 阅读全文
posted @ 2020-04-11 21:02 zz洲神在此 阅读(91) 评论(0) 推荐(0)
摘要:顺序表 数据结构中存储的元素是有顺序的,顺序表的结构可以分为两种形式:单数据类型(数组)和多数据类型(列表)。 python中的列表和元组就属于多数据类型的顺序表 单数据类型顺序表的内存图(内存连续开启) 多数据类型顺序表的内存图(内存非连续开辟) 顺序表的弊端:顺序表的结构需要预先知道数据大小来申 阅读全文
posted @ 2020-04-11 21:01 zz洲神在此 阅读(250) 评论(0) 推荐(0)
摘要:内存 计算机的作用 存储和运算二进制的数据 计算机如何实现1+1=?操作 将1加载到计算机内存中,然后基于计算机的加法寄存器对指定内存中存储的数据转化为二进制进行加法运算。 变量的概念 本质讲,变量指的就是计算机中的某一块内存空间 内存空间有2个固有属性 地址:使用16进制的数表示 作用:方便cpu 阅读全文
posted @ 2020-04-11 20:58 zz洲神在此 阅读(784) 评论(0) 推荐(0)
摘要:队列 队列:先进先出 应用场景: 我们的计算机实验室有 30 台计算机与一台打印机联网。当学生想要打印时,他们的打印任务与正在等待的所有其他打印任务“一致”。第一个进入的任务是先完成。如果你是最后一个,你必须等待你前面的所有其他任务打印 Queue() 创建一个空的新队列。 它不需要参数,并返回一个 阅读全文
posted @ 2020-04-11 20:54 zz洲神在此 阅读(117) 评论(0) 推荐(0)
摘要:栈 特性:先进后出 栈顶,栈底 从栈顶向栈底添加元素,从栈顶元素 应用:每个 web 浏览器都有一个返回按钮。当你浏览网页时,这些网页被放置在一个栈中(实际是网页的网址)。你现在查看的网页在顶部,你第一个查看的网页在底部。如果按‘返回’按钮,将按相反的顺序浏览刚才的页面。 Stack() 创建一个空 阅读全文
posted @ 2020-04-11 20:49 zz洲神在此 阅读(84) 评论(0) 推荐(0)
摘要:timeit模块 Python3中的timeit模块作用及参数介绍: 用来测试小段代码的运行时间 其中主要通过两个函数来实现:timeit和repeat,代码如下: 在上面的代码中可见,无论是timeit还是repeat都是先生成Timer对象,然后调用了Timer对象的timeit或repeat函 阅读全文
posted @ 2020-04-08 16:30 zz洲神在此 阅读(284) 评论(0) 推荐(0)
摘要:一、redis连接 redis提供两个类Redis和StrictRedis用于实现Redis的命令,StrictRedis用于实现大部分官方的命令,并使用官方的语法和命令,Redis是StrictRedis的子类,用于向后兼容旧版本的redis py。 redis连接实例是线程安全的,可以直接将re 阅读全文
posted @ 2020-04-05 19:57 zz洲神在此 阅读(1404) 评论(0) 推荐(0)
摘要:String(字符串) string类型: 字符串类型是 Redis 中最为基础的数据存储类型,它在 Redis 中是二进制安全的,意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。最大容量是512M。 如果设置的键不存在则为添加,如果设置的键已经存在则是修改 设置键 阅读全文
posted @ 2020-04-01 17:35 zz洲神在此 阅读(163) 评论(0) 推荐(0)
摘要:redis的下载安装 从redis.io官网下载最新版redis X.Y.Z.tar.gz,或者从githubhttps://github.com/MicrosoftArchive/redis/releases下载msi后缀的文件,msi后缀的文件强大在安装之后自动会给你添加到widow服务中。re 阅读全文
posted @ 2020-04-01 15:09 zz洲神在此 阅读(163) 评论(0) 推荐(0)