摘要: 对于我这种习惯了 Java 这种编译型语言,在使用 Python 这种动态语言的时候,发现错误经常只能在执行的时候发现,总感觉有点不放心。 而且有一些错误由于隐藏的比较深,只有特定逻辑才会触发,往往导致需要花很多时间才能将语法错误慢慢排查出来。其实有一些错误是很明显的,假如能在写程序的时候发现这些错 阅读全文
posted @ 2019-04-22 14:35 拐弯 阅读(1975) 评论(0) 推荐(0)
摘要: MySQL 为什么使用B+数 B-树和B+树最重要的一个区别就是B+树只有叶节点存放数据,其余节点用来索引,而B-树是每个索引节点都会有Data域。 这就决定了B+树更适合用来存储外部数据,也就是所谓的磁盘数据。从Mysql(Inoodb)的角度来看,B+树是用来充当索引的,一般来说索引非常大,尤其 阅读全文
posted @ 2019-04-22 14:24 拐弯 阅读(1277) 评论(0) 推荐(0)
摘要: 常见的加密算法可以分成三类,对称加密算法,非对称加密算法和Hash算法。 对称加密 指加密和解密使用相同密钥的加密算法。对称加密算法的优点在于加解密的高速度和使用长密钥时的难破解性。假设两个用户需要使用对称加密方法加密然后交换数据,则用户最少需要2个密钥并交换使用,如果企业内用户有n个,则整个企业共 阅读全文
posted @ 2019-04-22 13:51 拐弯 阅读(771) 评论(0) 推荐(0)
摘要: mongoDB 操作 基本的 存储结构 1. MongoDB的启动 CMD : 2.指令 3.MongoDB的增删改查: 4.数据类型: 5.MongoDB与关系型数据库概念的变差: + 关系型数据库 MongoDB database database table Collections row D 阅读全文
posted @ 2019-04-22 13:13 拐弯 阅读(302) 评论(0) 推荐(0)
摘要: mongoDB python 操作 1.查询 2.增加数据 3.修改数据 4.删除 阅读全文
posted @ 2019-04-22 13:12 拐弯 阅读(191) 评论(0) 推荐(0)
摘要: jwt 认证 私钥、公钥、CA认证 用一套加密规则 加密和解密 RSA加密 (非对称的加密) 摘要算法:MD5 FTP/互联网下载软件校验MD5 私钥 RSA算法 公钥 "RSA原理" 加密解密:只要你有我的公钥你就能知道我发的消息是什么。 数字签名:只要用我的公钥把一个消息解密了,那么这个消息就一 阅读全文
posted @ 2019-04-22 13:08 拐弯 阅读(624) 评论(0) 推荐(0)
摘要: Celery 介绍: Celery 是芹菜 Celery 是基于Python实现的模块, 用于执行异步定时周期任务的 其结构的组成是由 1. 用户任务 app 2. 管道 broker 用于存储任务 官方推荐 redis rabbitMQ / backend 用于存储任务执行结果的 3. 员工 wo 阅读全文
posted @ 2019-04-22 13:06 拐弯 阅读(620) 评论(1) 推荐(0)
摘要: SQLAlchemy 基础 普通操作: 创建表 CRUD (增删改查) 阅读全文
posted @ 2019-04-22 13:05 拐弯 阅读(270) 评论(0) 推荐(0)
摘要: 设计模式 接口: 一种特殊的类.声明了若干个方法,要求继承该接口的类必须实现这些方法. 作用: 限制继承接口的类的方法的名称及调用方式;隐藏了类的内部实现. 接口就是一种抽象类的基类(父类),限制继承它的类必须实现接口中定义的某些方法 python 中的接口实现 设计模式六大原则: 1. 开闭原则 阅读全文
posted @ 2019-04-22 12:58 拐弯 阅读(277) 评论(0) 推荐(0)
摘要: 栈 stack 栈的出队序列 + n个有序元素的出栈序列个数: + 卡特兰数 栈处理括号匹配 (brace match) + 栈的应用 迷宫问题 给一个二维列表,表示迷宫(0表示通道,1表示围墙)。给出算法,求一条走出迷宫的路径。 思路: + 在一个迷宫节点(x,y)上,可以进行四个方向的探查:ma 阅读全文
posted @ 2019-04-22 12:57 拐弯 阅读(414) 评论(0) 推荐(0)
摘要: 其他 整数与列表的转换 反转数字 数字转 二进制 python & (按位与) | ~ ^ 异或(xor) and or not 位运算 print(3 ^ 6) 5 0011 0110 0101 开关 x = False def toggle(x): return x ^ True print(t 阅读全文
posted @ 2019-04-22 12:55 拐弯 阅读(165) 评论(0) 推荐(0)
摘要: 希尔排序 + 希尔排序思路 + 希尔排序是一种分组插入排序算法。 + 首先取一个整数d1=n/2,将元素分为d1个组,每组相邻量元素之间距离为d1,在各组内进行直接插入排序; + 取第二个整数d2=d1/2,重复上述分组排序过程,直到di=1,即所有元素在同一组内进行直接插入排序。 + 希尔排序每趟 阅读全文
posted @ 2019-04-22 12:54 拐弯 阅读(285) 评论(0) 推荐(0)
摘要: NB三人组 快速排序 + 思路" + 取一个元素P (第一个元素), 使元素归位 + 列表被P 分成两部分,左边都比P小,右边比P大; + 递归完成排序. + 问题 如果是已经排序好的 倒叙 列表 则会 递归深度越界 + 每次 python import random from cal_time i 阅读全文
posted @ 2019-04-22 12:53 拐弯 阅读(312) 评论(0) 推荐(0)
摘要: LOWB 三人组 + 分清有序区跟无序区 冒泡排序 + 思路: 首先,列表每两个相邻的数,如果前边的比后边的大,那么交换和两个数.... + 冒泡排序优化 如果一趟没有发生任何交换 那么证明列表已经是有序的了 选择排序 + 思路: + 一趟便利记录最小的数,放到第一个位置; + 再一趟便利记录剩余列 阅读全文
posted @ 2019-04-22 12:51 拐弯 阅读(331) 评论(0) 推荐(0)
摘要: 时间复杂度 + 时间复杂度是用来估计算法运行时间的一个式子(单位)。 + 一般来说,时间复杂度高的算法比复杂度低的算法慢。 + 常见的时间复杂度(按效率排序) + O(1) O(logn) + 几次循环就是n的几次方的复杂度 空间复杂度 + 空间复杂度:用来评估算法内存占用大小的一个式子 + “空间 阅读全文
posted @ 2019-04-22 12:49 拐弯 阅读(884) 评论(0) 推荐(0)
摘要: 城市气候与海洋的关系研究 + 导入包 + 导入数据各个海滨城市数据 | | temp | humidity | pressure | description | dt | wind_speed | wind_deg | city | day | dist | | | | | | | | | | | 阅读全文
posted @ 2019-04-22 12:43 拐弯 阅读(417) 评论(0) 推荐(0)
摘要: 美国2012年总统候选人政治献金数据分析 + 导入包 + 方便大家操作,将月份和参选人以及所在政党进行定义 需求: 1. 读取文件 \ 2. 查看文件样式及基本信息 3. 【知识点】使用map函数+字典,新建一列各个候选人所在党派party 4. 使用 函数查看 这一列中有哪些元素 5. 使用val 阅读全文
posted @ 2019-04-22 12:42 拐弯 阅读(175) 评论(0) 推荐(0)
摘要: 需求: 导入文件,查看原始数据 将人口数据和各州简称数据进行合并 将合并的数据中重复的abbreviation列进行删除 查看存在缺失数据的列 找到有哪些state/region使得state的值为NaN,进行去重操作 为找到的这些state/region的state项补上正确的值,从而去除掉sta 阅读全文
posted @ 2019-04-22 12:41 拐弯 阅读(485) 评论(0) 推荐(0)
摘要: Matplotlib基础知识 一、Matplotlib基础知识 + Matplotlib中的基本图表包括的元素 + x轴和y轴 axis 水平和垂直的轴线 + x轴和y轴刻度 tick 刻度标示坐标轴的分隔,包括最小刻度和最大刻度 + x轴和y轴刻度标签 tick label 表示特定坐标轴的值 + 阅读全文
posted @ 2019-04-22 12:39 拐弯 阅读(1281) 评论(0) 推荐(0)
摘要: 数据分析 生成器 迭代器 装饰器 (两层传参) 单例模式() ios七层 io多路 数据分析:是把隐藏在一些看似杂乱无章的数据背后的信息提炼出来,总结出所研究对象的内在规律 pandas的拼接操作 + pandas的拼接分为两种: + 级联:pd.concat, pd.append + 合并:pd. 阅读全文
posted @ 2019-04-22 12:38 拐弯 阅读(4585) 评论(0) 推荐(0)
摘要: 处理丢失数据 有两种丢失数据: 1. None None是Python自带的,其类型为python object。因此,None不能参与到任何计算中。 2. np.nan(NaN) np.nan是浮点类型,能参与到计算中。但计算的结果总是NaN。 3. pandas中的None与NaN 1) pan 阅读全文
posted @ 2019-04-22 12:37 拐弯 阅读(899) 评论(0) 推荐(0)
摘要: 数据分析三剑客: Numpy, Pandas, Matplotlib NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库。 一、 使用np.array()创建 一维数据创建 二维数组创建 注意: 阅读全文
posted @ 2019-04-22 12:36 拐弯 阅读(483) 评论(0) 推荐(0)
摘要: Pandas的数据结构 导入pandas: 三剑客 1、Series Series是一种类似与一维数组的对象,由下面两个部分组成: values:一组数据(ndarray类型) index:相关的数据索引标签 1)Series的创建 两种创建方式: (1) 由列表或numpy数组创建 ​ 默认索引为 阅读全文
posted @ 2019-04-22 12:36 拐弯 阅读(290) 评论(0) 推荐(0)
摘要: tushare 使用 python开源金融接口包: tushare.org/trading.html d2 安装: pip install tushare 修改数据中的 date 时间 值 为时间序列 根据时间序列查找数据 数据偏移 df['close'].shift(1) python down_ 阅读全文
posted @ 2019-04-22 12:34 拐弯 阅读(447) 评论(0) 推荐(0)
摘要: 总结: 中间件:下载中间件(拦截请求和响应) process_request: prceess_response: process_exception: 请求: - UA伪装: - process_request进行操作:request.headers['User-Agent'] = 'xxx' - 阅读全文
posted @ 2019-04-22 12:32 拐弯 阅读(441) 评论(0) 推荐(0)
摘要: 增量式: 用来检测网站中数据的更新情况 对于文本内容 使用 阅读全文
posted @ 2019-04-22 12:31 拐弯 阅读(316) 评论(0) 推荐(0)
摘要: 分布式 爬虫 + scrapy redis 实现 + 原生scrapy 无法实现 分布式 + 调度器和管道无法被分布式机群共享 1. 环境安装 pip install scrapy_redis 2. 导包:from scrapy_redis.spiders import RedisCrawlSpid 阅读全文
posted @ 2019-04-22 12:29 拐弯 阅读(246) 评论(0) 推荐(0)
摘要: CrawlSpider 全站数据爬取 创建 crawlSpider 爬虫文件 + scrapy genspider t crawl chouti www.xxx.com 对于简介与详情不是一个 item 的存储 思路: 基于手动请求发送的形式:对所有页面表示的url发起请求,获取页面数据,进行解析 阅读全文
posted @ 2019-04-22 12:28 拐弯 阅读(414) 评论(0) 推荐(0)
摘要: 使用 selenium 爬取动态加载内容 + 开启中间件 1. 在爬虫文件中 创建 浏览器对象 使用 爬虫文件的 __init__ 方法 数据解析: 2. 操作在 process_response(self,request,response,spider) 中 编写 浏览器自动化操作 进行点击 或者 阅读全文
posted @ 2019-04-22 12:27 拐弯 阅读(884) 评论(0) 推荐(0)
摘要: 中间件 + 拦截请求跟响应 + 进行ua(User Agent ) 伪装 代理 IP 中间件位置: 1. 引擎 和下载器 中间 的中间件 ( 下载中间件) 2. 引擎 跟 spider 中间 的中间件 ( 爬虫中间件)(不常用) 下载中间件中的ua 伪装 + 下载中间件可以拦截调度器发送给下载器的请 阅读全文
posted @ 2019-04-22 12:25 拐弯 阅读(1050) 评论(0) 推荐(0)
摘要: 手动发送请求 python import scrapy from choutiSpider.items import ChoutispiderItem class ChoutiSpider(scrapy.Spider): name = 'chouti' allowed_domains = ['www 阅读全文
posted @ 2019-04-22 12:21 拐弯 阅读(621) 评论(0) 推荐(0)
摘要: scrapy 框架的使用 博客: https://www.cnblogs.com/bobo zhang/p/10561617.html 安装: 1. pip install wheel 2. 下载 下载地址: https://www.lfd.uci.edu/~gohlke/pythonlibs/ 3 阅读全文
posted @ 2019-04-22 12:19 拐弯 阅读(513) 评论(0) 推荐(0)
摘要: selenium selenium:可以让浏览器完成相关自动化的操作 环境安装: pip install selenium 编码流程: 导包 创建某一款浏览器对象 制定相关的行为动作 phantomJs:浏览器(无可视化界面) 谷歌无头浏览器 登录qq空间 阅读全文
posted @ 2019-04-22 12:15 拐弯 阅读(250) 评论(0) 推荐(0)
摘要: 使用线程池 阅读全文
posted @ 2019-04-22 12:14 拐弯 阅读(266) 评论(0) 推荐(0)
摘要: cookie的处理 1.手动处理: cookie封装到headers 2.自动处理: 1.获取一个session对象 2.使用session对象进行请求的发送 3.作用:在使用session进行请求发送过程中如果产生了cookie,则cookie会被自动存储到session对象中 3. 使用fidd 阅读全文
posted @ 2019-04-22 12:12 拐弯 阅读(804) 评论(0) 推荐(0)
摘要: 代理ip + 获取代理ip的网站: + 快代理 + 西祠代理 + www.goubanjia.com 云打码平台的使用 官网url:http://www.yundama.com/demo.html 注册: 1.普通用户 2.开发者用户 登录平台: 1.普通用户: 1.查询余额(题分) 2.开发者用户 阅读全文
posted @ 2019-04-22 12:07 拐弯 阅读(890) 评论(0) 推荐(0)
摘要: 解析加密数据 + 对一个新的网站进行爬取之前,首先要确定即将要进行爬取的数据是否为动态加载! + 解析加密数据 + 爬取 模板信息 阅读全文
posted @ 2019-04-22 12:04 拐弯 阅读(486) 评论(0) 推荐(0)
摘要: xpath解析 编码流程: 1.实例化一个etree对象,且将页面源码加载到该对象中 2.使用xpath函数,且在函数中必须作用一个xpath表达式进行标签的定位 3.使用xpath进行属性和文本的提取 xpath表达式: / and // 索引和属性定位://a[1] //a[@tagName] 阅读全文
posted @ 2019-04-22 12:00 拐弯 阅读(3561) 评论(0) 推荐(0)
摘要: bs4解析 bs4: 环境安装: lxml bs4 bs4编码流程: 1.实例化一个bs4对象,且将页面源码数据加载到该对象中 2.bs相关的方法或者属性实现标签定位 3.取文本或者取属性 bs的属性和方法: soup.tagName tagName.string/text/get_text() t 阅读全文
posted @ 2019-04-22 11:57 拐弯 阅读(4888) 评论(0) 推荐(0)
摘要: 数据解析 + 请求顺序: + 指定url + 发起请求 + 获取响应数据 + 数据的解析 + 持久化存储 正则解析 使用正则匹配: re.M:多行匹配 re.S:单行匹配( ) 阅读全文
posted @ 2019-04-22 11:55 拐弯 阅读(219) 评论(0) 推荐(0)
摘要: 协议 http 协议: client 端 server 端交互的 一种形式 请求头信息: User Agent: 情求载体的身份标识 connection: 'close' 连接状态 请求成功后 断开连接 响应头信息: Content Type: HTTPS 协议: 数字证书认证机构是客户端与服务器 阅读全文
posted @ 2019-04-22 11:52 拐弯 阅读(601) 评论(0) 推荐(0)
摘要: 索引 + 针对庞大数据 加速查询 缺点 占用空间 + 分类: 普通索引: 通过 index 创建 唯一索引: 就是 unique key 主键索引: 就是 primary key 联合索引(多列)": ​ 联合普通索引 ​ 联合唯一索引 ​ 联合主键索引 创建普通索引 + 表存在时 + 创建表示 联 阅读全文
posted @ 2019-04-22 11:46 拐弯 阅读(213) 评论(0) 推荐(0)
摘要: 查看模式 关键字的优先级 1. from 来自 2. where 条件 3. group by 分组 4. having 筛选 5. select 查询 6. distinct 去重 7. order by 排序 8. limit 限制条数 表单查询语法 where + 比较运算 = != + 值在 阅读全文
posted @ 2019-04-22 11:45 拐弯 阅读(950) 评论(0) 推荐(0)
摘要: 数据类型 + 整型 默认有符号 无符号(unsigned) 和有符号 用 0 填充 zerofill + 约束的作用: 保证数据的完整性 和一致性 + tinyint[ 128 , 127 ] 小整数 无符号(0,255) + int 整数 + bigint 极大整数 + 浮点型 float 单精度 阅读全文
posted @ 2019-04-22 11:41 拐弯 阅读(176) 评论(0) 推荐(0)
摘要: 内置函数 数学: abs(x) + 系统: + VERSION(): 返回mysql服务器的版本,是utf8编码的字符串 + DATABASE(),SCHEMA():显示当前使用的数据库 + SESSION_USER(), SYSTEM_USER(), USER(), CURRENT_USER, C 阅读全文
posted @ 2019-04-22 11:41 拐弯 阅读(259) 评论(0) 推荐(0)
摘要: 数据库命令: 进入 mysql 库; use mysql; 查看用户权限 select * from user where user='root' \G; 创建数据库 create database 数据库名; 查看当前创建的数据库 show create database 数据库名; 查看所有数据 阅读全文
posted @ 2019-04-22 11:39 拐弯 阅读(5542) 评论(0) 推荐(0)
摘要: + 数据库设置三大范式 1、第一范式(确保每列保持原子性) + 第一范式是最基本的范式。如果 数据库表中的所有字段值都是不可分解的原子值 ,就说明该数据库满足第一范式。 + 第一范式的合理遵循需要根据系统给的实际需求来确定。比如某些数据库系统中需要用到“地址”这个属性,本来直接将“地址”属性设计成为 阅读全文
posted @ 2019-04-22 11:38 拐弯 阅读(328) 评论(0) 推荐(0)
摘要: 版本控制是一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。 这个版本控制软件,有 svn还有git,是一个工具. 1. git是由linux的作者开发的 2. git是一个分布式版本控制系统 3. svn cvs是集中式的版本控制系统,区别于git,集中式的版本控制系统,必须联网 阅读全文
posted @ 2019-04-22 11:12 拐弯 阅读(1279) 评论(0) 推荐(0)