自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(32)
  • 收藏
  • 关注

原创 OpenCV Assertion failed: (-215:Assertion failed) npoints >= 0 && (depth == CV_32F || depth == CV_32S

昨天在使用OpenCV-Python时报错:OpenCV Assertion failed: (-215:Assertion failed) npoints >= 0 && (depth == CV_32F || depth == CV_32S),经过一番搜索,在stackoverflow上找到了答案,主要是版本问题,错误代码如下:contours = contours[0...

2019-11-05 10:15:45 2229

转载 关于Python中的弱引用

原文地址:https://yuerblog.cc/2018/08/28/python-weakref-real-usage/弱引用在很多语言中都存在,最常用来解决循环引用问题,我个人熟悉C++的版本。在本文,我们讲一下python中的weakref弱引用,因为我发现网上没有人把这个东西讲明白,要么是千篇一律解决循环引用,要么是长篇大论各种demo,着实让人头疼。观察者模式弱引用是观察者模式...

2019-10-10 11:15:37 220

原创 scrapy爬虫(七)--如何将selenium集成到scrapy中

要将selenium集成到scrapy,首先要考虑的是通过selenium访问到了网站页面后如何直接将内容传递给爬虫,而不是再经过下载器,这里就需要用到scrapy提供的Htmlresponse,当scrapy检测到该response对象后便不会再执行下载器,直接将其传递给爬虫,那么我们就可以在以中间件的形式接收request,然后获取url提供给selenium访问页面,用page_sour...

2020-04-07 16:07:51 570

原创 scrapy爬虫(六)--集成随机user-agent以及使用IP代理

本次使用的是fake-useragent开源库,该库详细内容点这里,我们来看scrapy的流程图:分析流程图可以看出,request在进入engine前会通过一些中间件;在engine和Downloader之间也有中间件,当request经过他们的处理后就交由Downloader进行下载了,因此我们只要在这层中间件对request进行处理,使其随机添加一个user-agent在源码中scra...

2020-04-06 16:18:37 294

原创 scrapy爬虫(五)--使用crawl模板进行全站爬取

创建项目前文已经有了,不在赘述,在生成模板时指定crawl模板(以爬取拉钩为例):scrapy gendpider -t crawl lagou www.lagou.com,生成如下模板在rules中创建Rule对象,明确url的提取规则,即哪些是详情页的url,哪些页面中存在详情页url,如首先爬虫会调用start_requests方法访问主页(start_requests方法是继承自sc...

2020-04-05 23:41:17 1296

原创 scrapy爬虫教程(四)--通过pipeline存储到MySQL数据库

目前Python中主流的MySQL客户端有pymysql和mysqlclient两种,我使用的是pymysql,如果最求性能可以mysqlclient安装:pip install pymsql在piplines中导入pymsql,创建链接(需要传入host、port、user、password、database),生成指针,使用execute执行SQL语句,同样需要在ITEM_PIPELIN...

2020-04-04 12:14:56 955

原创 scrapy爬虫(三)item及pipline

在item中定义需要存储的字段,然后导入到爬虫文件中,将相应字段数据添加到item中,直接yield出去就能传递给pipline如果要让pipline能接收到需要在settings中开启ITEM_PIPELINES这里以默认的pipline为例(可以自定义pipline,定义好后按上图的方式添加,用不上的要注释掉,后面的数字表示优先级,越小越先执行),可以看到piplines文件中的La...

2020-04-03 23:39:51 385

原创 scrapy爬虫教程(二)--第一个爬虫

上篇文章大致了解scrapy的流程,生成了lagou.py爬虫文件,接着看看爬虫文件的内容:通过上图看出爬虫是继承自scrapy.Spider,在进入到Spider中找到入口函数start_requests爬虫就是通过这里作为入口创建request对象,通过引擎发送给调度器,下载器获取到request进行下载,生成response发送给爬虫的parse函数进行解析父类scrapy.S...

2020-04-03 19:59:10 277

原创 scrapy爬虫教程(一)--scrapy安装及生成项目

安装在终端输入pip install,如果速度太慢指定国内镜像安装pip install -i https://pypi.doubanio.com/simple/ scrapy创建项目终端中执行scrapy startproject 项目名称如scrapy startproject lagouspider执行命令后生成的项目目录结构如下:在项目目录中执行生成爬虫模板文件的命令执行...

2020-04-03 15:47:36 380

原创 Redis持久化

因为Redis的读写操作都是在内存中进行的,一旦服务重启数据就会丢失,为了不让数据丢失,将内存中的数据保存到磁盘中,在服务器重启时从磁盘中恢复数据,就是Redis的持久化。Redis的持久化分三种方式:快照方式(RDB):将某一时刻的内存快照以二进制方式写入RDB文件中文件追加方式(AOF):记录数据库的操作命令,以文本形式追加到AOF文件中混合方式:先以RDB方式将数据写入文件头,后...

2020-03-27 17:50:17 124

原创 redis数据操作之set、zset

创建set(set是无序的)sadd key value1 value2sadd xxx 1 a d 2 3 f获取set中的元素smembers keysmembers xxxset是无序的,因此获取到的元素顺序和添加的顺序不一致删除元素srem key valuesrem xxx a 1创建zset(有序的)zadd key score v...

2020-03-05 23:13:56 245 1

原创 redis数据操作之list

创建list从左插入数据lpush key value valuelpush name laowang laoli laozhang从右插入rpush key value valuerpush id 1 2 3从某个指定元素的前或后插入linsert key before|after 指定元素 插入元素linsert id after 3 4linsert id b...

2020-03-05 21:41:35 130

原创 redis数据操作之hash

hash是key field value形式设置键、字段、值hset key field valuehset user name laowang同时设置多个字段和值hmset user1 name laozhang id 1查询一个key中的字段hkeys keyhkeys user1获取某个key中一个字段的值hget key fieldhget u...

2020-03-05 20:30:20 164 1

原创 redis数据操作之string

设置键值set key value 如果设置的键已经存在,则会修改值set name laowang获取值get keyget name设置键值对的过期时间setex key 时间 valuesetex name 10 laozhang同时设置多个键值对mset key1 value1 key2 value2mset name1 laoliu na...

2020-03-05 15:08:10 134

原创 MySQL索引

在说索引前我们先创建一张表,在插入50万条数据,为了方便,我使用Python链接出具库插入数据在终端上查询数据在终端上查询一条数据select * from index_data where data='xxx_400000';我们可以看到查询结果耗时0.13秒,很慢为了加快查询速度,于是索引就来了创建索引方式create index 索引名 on 数据表(字段(字段长度)...

2020-03-04 14:21:55 119

原创 MySQL的事务

什么是事务?我们首先开看一个场景甲的银行账户有200元存款,乙也有200元存款,甲向乙转账100元,如果由于某种原因转账失败,甲和乙查询各自账户时自己的存款不会发生变化并不会出现甲的账户变成100而乙的账户仍是200,如果成功,则甲的账户一定是100,已的账户一定是300,即整个流程要么都执行,要么都不执行。那么什么是事务呢?所谓事务就是一个操作序列,要么都不执行,要么全部执行成功,他是...

2020-03-04 00:30:53 182

原创 MySQL视图

准备数据创建三个数据表用户表,存储用户id、用户名、电话、所属省id、所属市idcreate table user( id int unsigned not null primary key auto_increment, user_name varchar(20) not null unique, phone varchar(11) not null unique, provinc...

2020-03-03 17:36:30 124

原创 MySQL数据表的拆分

准备数据create table goods( id int unsigned primary key auto_increment not null, name varchar(150) not null, cate_name varchar(40) not null, brand_name varchar(40) not null, price d...

2020-03-03 09:52:42 416

原创 MySQL连表查询、子查询

联表查询内联查询(取等号两边的交集)当两张相比如学生表中的班级id和班级表的id一致select 表A字段,表B字段 from 表A inner join 表B on 表A字段=表B字段;select students.name,classes.name from students inner join classes on students.cls_id=classes.id...

2020-03-01 14:15:38 411

原创 MySQL聚合函数、分组、分页

count,计数统计学生数据表中男性数量select count(*) from students where gender=‘男’;max,查找最大值查找学生表中的最大年龄select max(age) from students;min,查找最小值查找最小年龄值select min(age) from students;sum,求和学生的年龄总...

2020-02-29 12:23:34 477

原创 MySQL的操作(三):数据查询基础

查询时为表取名select id,name from students as std;查询并去除重复的数据select distinct 字段 from 数据表;select distinct gender from students;比较运算符查询select * from students where age<18;select * from stud...

2020-02-28 17:45:10 143

原创 MySQL的操作(二):数据表字段的增删改查

给数据表增加字段alter table 表名 add 类型 约束;alter table students add number int not null;修改字段只修改字段类型不修改字段名alter table 表名 modify 字段名 类型 约束;alter table students modify number varchar(20) default ‘0’;...

2020-02-28 13:27:59 189

原创 MySQL的操作(一):数据库连接、创建、删除

连接MySQLmysql -uroot -p密码mysql -uroot -p退出数据库exitquitcontrl+D查看所有数据库show databases;显示时间select now();显示版本select version();创建数据库创建一个名为test的数据库create database test;(字...

2020-02-28 07:54:07 118

原创 python中的前置单下划线_和前置双下划线__

前置单下划线表示受保护的成员,不应该在外部访问,但在外部访问并不会报错,其子类可以继承并访问,无法通过from xxx import *导入;比如创建文件Demo1和Demo2Demo1:a = 1_a = 2Demo2from Demo1 import *print(a)print(_a)运行结果NameError: name '_a' is not defined但是...

2020-02-25 15:15:29 540

原创 关于执行docker命令时报错

windows10系统下安装docker后,docker desktop正常运行,但在CMD中输入docker命令是报错unable to resolve docker endpoint: open C:\Users\futianwen.DESKTOP-3J46I39\.docker\machine\machines\default\ca.pem: The system cannot find t...

2020-01-09 11:22:24 1303

原创 requests.exceptions.ProxyError/ [WinError 10061] 由于目标计算机积极拒绝,无法连接

首先检查headers中的Host是否正确,如果Host错误会造成该异常如果Host检查无误,检查是否开启了网络代理,如果开启请关闭

2019-12-17 16:58:39 428

原创 Python中的继承

最近项目中的多个APP的很大部分类的代码相似,少许的不同,于是将重复部分抽象为一个基类,其他APP中要用到的直接继承基类,基于此重复习继承。单继承:子类继承了父类的func方法,并直接调用,如果子类中存在相同的方法名,则优先调用子类中的方法class Father: def func1(self): print('这是父类的方法') def func2(...

2019-12-04 17:35:02 124

原创 解决windows10启动virtualenv虚拟环境出错

写在最前面:本次解决我的问题的博客,点这里,该博文也详细说明了virtualenv的使用很少使用windows系统了,今天在windows10中安装了virtualenv并创建python虚拟环境,启动环境时出错.\venv\Scripts\activate : 无法加载文件 venv\Scripts\activate.ps1,因为在此系统上禁止运行脚本解决方法是修改policy:...

2019-11-28 10:42:22 2119 1

原创 配置免密登录远程服务器

环境:本机为MacOS服务器为CentOs7登录服务器:2.1 ssh root@你的服务器IP -p 服务器端口号,输入服务器密码2.2 创建.ssh文件夹:cd ~/,mkdir .ssh操作:3.1 生成公钥和私钥:终端输入ssh-keygen -t rsa,一路enter键默认到底3.2 终端输入cd ~/.ssh,进入.ssh文件夹后查看文件夹输入l...

2019-11-21 12:12:09 167

原创 Python中的切片处理

对列表的区间操作l = [10, 20, 30, 40, 50, 60]newl = l[:2][10, 20]newl = l[2:][30, 40, 50, 60]s = 'bicycle'从头到尾步长为3即每三个取一个s[::3] 'bye'倒序a = s[::-1]print(a)‘elcycib’# 列表切片赋值l1 = [0, 1, 2,...

2019-11-12 15:48:46 271

原创 python3.6+gunicorn+supervisor部署flask项目

1. 服务器环境:ubuntupython3.62. 开发接口:from flask import request, Flaskapp = Flask(__name__)@app.route('/test', methods=['get'])def test_view(): return '123'if __name__ == "__main__": a...

2019-07-23 12:30:13 644

原创 html中利用hover制作三级菜单

&lt;!DOCTYPE html&gt;&lt;html lang="zh"&gt;&lt;head&gt; &lt;meta charset="UTF-8" /&gt; &lt;meta name="viewport" content="width=device-width, initial-scale=1.0" /&gt; &

2018-11-12 21:29:42 1097

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除