自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Rei的博客

Later on, it was going to slow by slowly.

  • 博客(82)
  • 资源 (1)
  • 收藏
  • 关注

原创 [面试] 0. 导航-初中级后端工程师面试题目总结(提供参考答案)

前言 这篇文章是个人对后端工程师的面试复习点总结,不求面面俱到,只求发挥实效。你也可将你面试时遇到的值得记录下来的问题发给我,丰富这篇文章,感谢~本文仅包括目录,查看答案请点击超链接。 每个题目的答案我都会上传文章供各位参考,但完成需要一点时间,请耐心等待。 如出现任何错误之处,请指出~注明 本文中的题目多参考于网络,如果侵犯了您的权利或您有注明来源的要求,请给我留言...

2019-05-24 10:42:30 2109 4

原创 [Python] 六种进程间通信方式的Python3.6实现

正文: 进程间通信方式有六种,如下msg_queue (消息队列) pipeline for single duplex (单工管道) pipeline for half duplex (半双工管道) name pipeline (命名管道) share memory (共享内存) semaphore (信号量) 这六种方式各有特点,其中有些使用场景也不同,比...

2019-05-06 17:36:18 11200 8

原创 [Python3] 如何装饰类中的类方法或静态方法

Talk is cheapCode is here:#普通装饰器(装饰函数和类)def deco111(func_or_cls): def wrap(*args, **kwargs): print(type(func_or_cls)) return func_or_cls(*args, **kwargs) return...

2019-03-15 11:55:08 867

原创 [Python] 3.7中的dataclasses

简介:这个dataclasses是当做装饰器来用,作用是在我们定义数据class对象时减少我们的代码量。文章主要是用IDE写的,还请见谅。 正文:from dataclasses import dataclass#带上这个装饰器帽子,相当于它的init,repr,eq等双下划线方法都自动帮我们创建@dataclass(init=True, repr=True, eq=...

2018-12-26 16:52:04 4554

原创 [Golang] struct配合slice实现循环队列

循环队列特征  使用的头尾索引永远都在底层数组长度下标范围内,如队列长度为10,那么底层数组长度为11,index范围[0,10]解决的问题  用非循环数组实现的队列在底层数组满的时候有数据搬移的操作,会影响入队操作;循环数组可以解决这个问题!与同样用数组实现的普通队列的区别   1. 循环队列需要专门占用数组的一个位置来作...

2018-11-21 15:00:07 2273 1

原创 [Golang] 谈Go中的继承

继承,这个概念来自于OOP思想。所谓继承,是指可以让某个类型的对象获得另一个类型的对象的属性的方法。它支持按级分类的概念。继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来的类的情况下对这些功能进行扩展。继承的关键词:“获得”,“代码复用”。先来看看典型的OOP语言Python对于继承的实现:class person: def say(self......

2018-10-26 17:10:53 15476 6

原创 [Golang] 实现一个通用的排序方式(对任意数据类型构成的slice排序)

前言:Go 语言中排序主要使用的sort库,对于常见数据类型string, int ,float构成的Slice,可以使用sort库对应的sort.Strings() /sort.Ints() / sort.Float64s()直接排序,但是对于复杂类型struct构成的Slice,要对其排序就需要自己实现其三个方法(Len, Swap,Less)。问题在于:一个结构体我可以给他写三个方...

2018-10-22 17:54:41 1686

原创 [Python3] RSA的加解密和签名/验签实现 -- 使用Crypto

前言关于非对称加密算法我就不过多介绍了,本文着重于python3对RSA算法的实现。正文from Crypto.PublicKey import RSAimport Crypto.Signature.PKCS1_v1_5 as sign_PKCS1_v1_5 #用于签名/验签from Crypto.Cipher import PKCS1_v1_5 #用于加密from Crypt...

2018-10-12 15:30:17 6840 1

原创 [生的感触] 故事摘录

 父亲和哥哥的墓地位于一座山上,俯瞰华盛顿湖,环境很幽雅。7月20日那天人们一定处处能感觉到父亲留下的斗志,也正是这种精神使我们35年后仍紧系在一起。我希望不管你在何处,你能在每年的7月20日哀思李小龙,因为不论是一篇文章,一张照片,或一部像《李小龙传奇》似的电视剧,一个人的一次挂念,都有助于李小龙这个传奇的延续。今天乃至以后的岁月,请与我们一起纪念李小龙!                ...

2018-08-20 13:01:12 287 1

原创 [Golang] 关于Sync.Map的使用

简介:sync.Map这个数据结构是线程安全的(基本类型Map结构体在并发读写时会panic严重错误),它填补了Map线程不安全的缺陷,不过最好只在需要的情况下使用。它一般用于并发模型中对同一类map结构体的读写,或其他适用于sync.Map的情况。关于sync.Map的源码解析文章:Go 1.9 sync.Map揭秘正文:它主要五个方法及其功能简介:1、Store 存 k......

2018-08-03 16:41:32 22266

原创 [Scrapy使用技巧] 如何在scrapy中捕获并处理各种异常

前言 使用scrapy进行大型爬取任务的时候(爬取耗时以天为单位),无论主机网速多好,爬完之后总会发现scrapy日志中“item_scraped_count”不等于预先的种子数量,总有一部分种子爬取失败,失败的类型可能有如下图两种(下图为scrapy爬取结束完成时的日志):scrapy中常见的异常包括但不限于:download error(蓝色区域), http code 40...

2018-06-15 16:29:50 35928 35

原创 [开源库学习] Numpy日记 Section.2

前言   最近入门Data anaysis,将numpy学习日记分享出来,也当做个记录。 【Numpy官网学习地址】:Click Here   备注:        我尽可能的将官网快速教程中的case都贴出来了,但越往下发现这个库是真的庞大,教程也是由浅及深,后面会涉及到向量、线性代数等高数概念,这个本文中不会提到,需要的话自行前往官网查看。这个日记分为两个Section,加起来可能占到官网快速...

2018-06-13 17:54:46 361

原创 [开源库学习] Numpy日记 Section.1

前言   最近入门Data anaysis,将numpy学习日记分享出来,也当做个记录。 【Numpy官网学习地址】:Click Here   备注:        我尽可能的将官网快速教程中的case都贴出来了,但越往下发现这个库是真的庞大,教程也是由浅及深,后面会涉及到向量、线性代数等高数概念,这个本文中不会提到,需要的话自行前往官网查看。这个日记分为两个Section,加起来可能占到官网快速...

2018-06-13 17:48:00 389

原创 [巩固基础]总结Python基础知识的14张思维导图

闲聊    有时候总感觉自己的代码太low,却又没有什么办法去改善,就很气!    不知道作为看官的你是否由此感受呢,不过最近我找到办法解决这个问题了,那就是巩固基础--系统的学习python初级、高级语法,一段时间后,我明显感觉到自己的代码变得更简洁、优美,coding的心情也变的舒畅~    就此分享一波仓库的资料:包含Python基础知识的14张思维导图-PDF,希望有所帮助。...

2018-06-06 14:42:26 1274

原创 [Python小记] 装饰器怎么用 ?

装饰器的含义和作用:        装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。    它经常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景。装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量与函数功能本身无关的雷同代码并继续重用。概括的讲,装饰器的作用就是为已经存在的...

2018-05-27 17:10:44 940 4

原创 [Python小记] 通俗的理解闭包 闭包能帮我们做什么?

热身首先给出闭包函数的必要条件:闭包函数必须返回一个函数对象 闭包函数返回的那个函数必须引用外部变量(一般不能是全局变量),而返回的那个函数内部不一定要return几个典型的闭包例子:# ENV>>> Python 3.6 # NO.1 def line_conf(a, b): def line(x): r......

2018-05-27 00:20:41 28042 46

原创 [后端开发]支付宝支付接口调试 (Python v3.6)

写在前面:    讲真,一开始接到这个任务我是拒绝的。因为支付宝官方没有提供Python的SDK环境,只有JAVA/PHP/.NET三种语言的SDK,这意味着签名&验签、HTTP接口请求等操作全都要自己手动实现,就算支付宝提供了签名、验签的算法说明,但仅靠它的文字描述就写出一个符合支付宝想法的算法很明显“任重道远”,我当然不会去尝试这条路。    幸运的是,github总能给我惊喜...

2018-05-25 14:48:33 9562 5

原创 [爬虫小记] 优秀的requests模块

前言    除了当初学习爬虫的时候用过urllib、urllib2,后来再没用过了。都是使用的requests,本文将记录一直以来个人使用  requests的经验总结。正文    import requests r = requests.get('http://www.baidu.com') print(r.status_code) #200 获取状态码 ...

2018-05-18 11:57:44 349

原创 [爬虫面试] 总结一些爬虫工程师遇到的面试题(真实)

前言: 说几句,坐标CQ,爬虫工程师的需求在这个二线城市真的是太少了。正文: NO.1 :列表生成式和生成器的区别 ? NO.2 :如何不用任何循环快速筛掉列表中的奇数元素 ? NO.3 :map和reduce的用法 ? 这几个问题的答案作如下统一回答:#列表生成式print list(range(11...

2018-05-04 13:00:19 14559 2

原创 [爬虫架构] 如何设计一个分布式爬虫架构

前言:    在大型爬虫项目中,使用分布式架构是提高爬取效率的唯一途径。设计一个合理的分布式架构对项目、对个人都有很大的好处,接下来说说分布式架构应该具有的特性:分布式。这是最基本也是最核心的特性,分布式将允许我们通过横向扩展主机资源来提高爬取效率。易扩展、易部署。当我们想要增加要爬取的网站时,只需要专注于爬取规则、解析规则、入库规则部分的代码编写就ok,其他的如日志、异常处理则让底层架构实现。各...

2018-05-01 23:05:34 9337 17

原创 [爬虫架构] 如何在分布式爬虫架构中动态维护一个代理IP池(付费代理)

前言: 当分布式爬虫使用代理IP技术时,通过直接在爬虫程序中添加平台api接口的方式已经不能满足我们了,因为分布式的爬虫架构每秒的代理IP-URL的请求数会远远大于平台限制的请求频率,当然,对于没有限制的套餐此处不考虑,但为了爬虫能够稳定的获取代理IP,我们仍需要维护一个本地的代理IP池。准备工作: 需要的工具:搭建好的一台Redis服务器思路: ...

2018-04-17 13:21:12 1916

原创 [Python模块]Windows环境安装PyV8并执行js语句

安装这个玩意儿真挺坑的,pip直接安装失败,windows的py库压根搜不到。。搜索良多解决办法终于找到了,在这里贴出来,主要是把这个库下载下来再安装,但它的下载地址HERE位于外面的世界(你懂得),可能在下载这里会让人很烦躁,我把它的windows版本和linux版本都下载并上传到我的百度网盘了,免费供大家下载。更新:根据网友建议提供py3的下载地址,之前只有py2的。--py2版...

2018-04-15 00:46:47 11976 18

原创 [爬虫技巧] Scrapy中定制写入CSV文件的Pipeline

前言: 在使用Scrapy写项目时,难免有时会需要将数据写入csv文件中,自带的FEED写法如下:settings.py (系统:Ubuntu 14)FEED_URI = 'file:///home/eli/Desktop/qtw.csv'FEED_FORMAT = 'CSV' 无需另写pipeline类,这种写法是最简单的。但鱼和...

2018-03-17 12:21:46 14795 3

原创 [爬虫项目]scrapy使用ImagePipeline下载图片And图片分类存储(解决路径问题)

项目介绍:       使用Scrapy下载千图网首页图片的高清样张,系统为Ubuntu 14.04       千图网反爬:            1、访问频率限制,延时需设置适当,频率上限后会要求输入4位验证码(3-6次),仍持续该频率将被封号4-6小时(测试数据)            2、经测试,当被检测为恶意访问后,网站未对IP进行封杀,只是封帐号        综上可知其反爬技术并不算...

2018-03-16 22:55:11 6071 1

原创 [已解决]ubuntu导入scrapy报错: No module named twisted.persisted.styles

场景:        ubuntu安装scrapy后,在python2.7解释器上导入scrapy时报错:        No module named twisted.persisted.styles解决:        sudo pip install twisted --upgrade

2018-03-16 11:36:47 3259 1

原创 [已解决]笔记本安装ubuntu后不能识别无线网卡

症状:    刚在windows7电脑上装完ubuntu(做双系统)。进入ubuntu通过ifconfig命令看不到wlan网卡,只有以太网卡和loopback口解决:    1、检查无线网卡类型:lspci  |grep  Network  ,返回Network controller:Qualcomm Atheros Device 0042(rev 31),由此确认是高通的网卡。(若是Broad...

2018-03-13 20:26:42 15022

原创 【Python模拟登录】py2模拟登录GitHub

·思路描述先通过浏览器使用账号正常登陆网站,分析提交的表单可以用火狐或者其他抓包工具,这里推荐火狐,它可以抓取到重定向前的请求,而重定向前的http请求就包含了模拟登录需要的各项参数(如账号、密码、其他字符)。如下图,输入账号密码,右键打开“查看元素”,点击“sign in”登录登陆之后,观察控制台的请求变化情况,登录成功后如下图,如图,火狐的优势就显现出来了,第一个POST请求就是实际登录的ht...

2018-01-17 17:33:23 443

转载 【python】 os.path模块介绍

os.path.abspath(path) #返回绝对路径 os.path.basename(path) #返回文件名 os.path.commonprefix(list) #返回list(多个路径)中,所有path共有的最长的路径。 os.path.dirname(path) #返回文件路径 os.path.exists(path) #路径存在则返回True,路径损坏返回False o

2017-12-22 16:38:05 268

原创 【Github】github是什么?github入门

Github解释:gitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名gitHub。注:本文章仅帮助读者入门github正文: 1、仓库 repository  说明:一个仓库一般用于存放一个项目,可以包含文件和各种格式的文件。一般也会有一个项目README文件(自述文件,用来保存你想描述的关于这个仓库的信息,可选),创建仓库时可以选择是否公开

2017-12-20 18:51:27 10663 4

原创 【Python模拟登录】py2模拟登陆CSDN(人工识别验证码)

思路描述:浏览器打开CSDN登陆页,使用浏览器的右键检查功能(F12)来监控HTTP请求,先通过错误的账号密码登陆CSDN,然后在“Network”中查看第一个请求的内容,如果是请求方式post那一般就对了,如果不是那就往下一个一个找,如图一: 图一把requests URL复制出来作为登录的url(分号后面的不要),右边的上下滑动杆拉到最下面查看需要提交哪些数据,如图二:

2017-12-17 13:19:49 702

原创 【Beautifulsoup】如何在网页中通过中文text获取标签

说明:通常我们所看到的网页几乎都是utf-8编码,这点在网页源码中搜索“charset”可以看到。也可以点击此处的方法查看,我们在使用beautifulsoup的时候,难免会有使用text属性来查找标签的时候,英文还好,查找中文的时候(bs.find(text=('钟表')),返回的结果几乎都是None,下面说说这个问题。当运行以下代码时:html = urllib2.urlopen(

2017-12-10 14:32:51 8214

原创 【爬虫学习笔记】BeautifulSoup用法分析(二)

本文章介绍BeautifulSoup的主要函数用法,对于BeautifulSoup的概念介绍请点击下方分析(一)查阅或自行查询,此处不再赘述。为了方便文章的编写,下文将用BS代表BeautifulSoup。笔记分为以下两篇文章:BeatifulSoup用法分析(一)BeatifulSoup用法分析(二)-本文上一部分主要介绍BS最基本,也是实战中很少用到的函数,这部

2017-11-17 12:14:06 688

原创 【爬虫学习笔记】BeautifulSoup用法分析(一)

掌握了一些python的基础语法后,便可以考虑想要发展的方向了,爬虫是一个很不错的方向在学习单线程爬虫的时候,势必会遇到BeatifulSoup,若不能熟练掌握它的用法,就很难往下面走了,下面开始介绍BeatifulSoup笔记分为以下两篇文章:BeatifulSoup用法分析(一)-本文BeatifulSoup用法分析(二)BeatifulSo

2017-11-16 09:21:04 1148

原创 【Linux】mysql命令行查看表结构,字段等信息

mysql查看表结构命令,如下:desc table_name;show columns from table_name;describe table_name;show create table table_name;use information_schema //进入库select * from columns where table_name='table_name'

2017-10-30 12:34:24 33144

转载 【Linux】Mysql初始化root密码和允许远程访问

mysql默认root用户没有密码,输入mysql –u root 进入mysql1、初始化root密码进入mysql数据库mysql>update user set password=PASSWORD(‘123456’) where User='root';2、允许mysql远程访问,可以使用以下三种方式:a、改表mysql -u root –pmy

2017-10-30 11:44:23 885

原创 Python学习网站集合[持续更新...]

在成长的过程中,始终不忘记录这一切。学习Python有很多方向,WEB开发、爬虫开发、大数据、自动化运维、人工智能。。个人准备学习的是爬虫和web,其他的估计短时间接触不到就不记录了。OK,正文开始(链接可复制可点击):Python基础入门(包含2.x&3.x):https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6

2017-10-29 11:38:56 322 2

原创 【Python笔记】输出中文的方法(字符编码)

说实话,要搞懂python中字符编码的所有问题,一定得在实战中积累经验才行!在此文章中,我用实例来分析并解决我们经常会遇到的一些问题,我的IDE环境为pycharm。示例1:如何输出编辑器中手动输入的中文?#coding=gbka='宙斯'aa=a.decode('gbk')print aa输出结果为中文“宙斯”(在后面的示例中不再特别说明)示例2:如何输出文

2017-10-25 11:40:30 2695

转载 python调用Shell脚本:os.system(cmd)或os.popen(cmd)的区别

两者的区别是:os.system(cmd)的返回值只会有0(成功),1,2 os.popen(cmd)会把执行的cmd的输出作为值返回。 python调用Shell脚本,有两种方法:os.system(cmd)或os.popen(cmd),前者返回值是脚本的退出状态码,后者的返回值是脚本执行过程中的输出内容。实际使用时视需求情况而选择。现假定有一个shell脚本test.sh:

2017-10-22 17:12:13 2880

原创 【Python笔记】no.3 练习-实现linux下的差异备份

前序首先,说明一下我的程序大概能做什么事:标题是实现linux下的差异备份,但我这里只是实现基本的功能,没有针对输出格式错误的时候进行处理!差异备份是指在一次全备份后到进行差异备份的这段时间内,对那些增加或者修改文件的备份,但是我这里只能备份增加的和对文件名修改过的文件进行备份,不能备份只修改内容的文件,后续会解决。代码:#coding=utf-8import mbackup

2017-09-30 10:53:42 717

原创 【Python笔记】关于linux和windows下的模块

模块•模块就是一个含有python语句的文件,其实就是官方预先写好的一个功能,然后取其名为‘模块’,当需要用到此功能时就是导入它•模块名就是文件名(不要扩展名.py,有例外)在写程序的时候常常需要导入模块,有许多模块在默认安装python环境的库里边就已经有了,比如我导入一个模块:>>> import sys>>> help(sys)Help on built-in mod

2017-09-18 11:37:04 1027

在centos6.5上安装icinga 2

在centos6.5上安装icinga 2

2017-07-13

空空如也

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

TA关注的人

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