自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

TheSamaritan-City

为了挖掘自己更神深层次的力量

  • 博客(189)
  • 资源 (4)
  • 收藏
  • 关注

原创 Python面试必备金典,还说你会python?

Skip to contentThis repositoryPull requestsIssuesGistTable of ContentsPython语言特性1 Python的函数参数传递2 Python中的元类(metaclass)3 @staticmethod和@c

2016-12-22 15:08:05 776 1

原创 python计算文件的行数和读取某一行内容的实现方法

一、计算文件的行数   最简单的办法是把文件读入一个大的列表中,然后统计列表的长度.如果文件的路径是以参数的形式filepath传递的,那么只用一行代码就可以完成我们的需求了:count = len(open(filepath,'rU').readlines())   如果是非常大的文件,上面的方法可能很慢,甚至失效.此时,可以使用循环来处理:count = -1

2016-09-08 20:53:22 18395 1

原创 “鼓上蚤”带你实战之Boss直聘爬虫

1 . 前言2 . 数据需求3 . 分析页面1前言目前来说,在互联网招聘界有一个“蓬勃生长”的“招聘小巨头”,也就是我们这期被爬的第一“男猪脚”----Boss直聘logo.png,为什么说它是小巨头呢,也是因为其成立于2014年,短短两三年的时间,凭借其“让Boss主动找你”的职业推荐理念获得广大用户的青睐,目前也是稳稳立足于“互联网招聘三巨头”之一,...

2018-05-27 14:31:47 3030

原创 RobustCrawler爬虫架构

以“健壮性”为第一原则的爬虫框架,基于Python、RabbitMQ、Docker等开源组件为基础进行开发。·整个基本的架构如下(还未包含全面):设计理念整个系统架构的原理是基于RabbitMQ的生产者-消费者的模型来进行爬虫模块之间的解耦以及序列化数据的传递,依靠RabbitMQ自身的集群性、持久化、消息确认机制作为爬虫健壮性的根本基础,将整个框架部署在Docker容器内,也是考虑到使用Dock...

2018-04-20 16:45:11 467

原创 Pycharm Python头文件模版

# -*- coding: utf-8 -*-"""-------------------------------------------------   File Name:     ${NAME}   Description :   Author :       ${USER}   date:          ${DATE}----------------------------------...

2018-04-20 01:12:43 1882

原创 celery动态任务组件Demo以及原理

celery是一个基于Python的分布式调度系统,文档在这 ,最近有个需求,想要动态的添加任务而不用重启celery服务,找了一圈没找到什么好办法(也有可能是文档没看仔细),所以只能自己实现囉为celery动态添加任务,首先我想到的是传递一个函数进去,让某个特定任务去执行这个传递过去的函数,就像这样@app.taskdef execute(func, *...

2018-03-19 12:42:44 2301 1

原创 使用Tensorflow构建和训练自己的CNN来做简单的验证码识别

 Tensorflow是目前最流行的深度学习框架,我们可以用它来搭建自己的卷积神经网络并训练自己的分类器,本文介绍怎样使用Tensorflow构建自己的CNN,怎样训练用于简单的验证码识别的分类器。本文假设你已经安装好了Tensorflow,了解过CNN的一些知识。下面将分步介绍怎样获得训练数据,怎样使用tensorflow构建卷积神经网络,怎样训练,以及怎样测试训练出来的分类器1. 准备训练样本...

2018-03-01 18:02:16 9552 6

原创 大家好,我的博客都转移到了http://www.pythonscientists.com/上面,希望大家能都多多支持

大家好,我的博客都转移到了http://www.pythonscientists.com/上面,希望大家能都多多支持

2018-02-27 13:22:57 245

原创 这里有最完美的解决socket.error: [Errno 98] Address already in use问题

一、基本设置如果python中socket 绑定的地址正在使用,往往会出现错误,在linux下:            则会显示“ socket.error: [Errno 98] Address already in use”在windows下:          则会显示 “socket.error: [Errno 10048] 通常每个套接字地址(协议/网络地址/端口)只允许使用一次”这是因...

2018-02-26 17:37:30 9696 1

原创 完美的CentOS-7使用kubeadm安装配置k8s(kubernetes),有问题问我

kubeadm配置k8s时间有限,只是列出了安装k8s的配置步骤,没有写明为什么这样做,以后有空再补上。如果有什么不明白的,欢迎在评论下留下你的问题,有空会回复。服务器名称角色IP地址系统mastermaster192.168.83.133CentOS 7.3kworker1worker192.168.83.134CentOS 7.3kworker2worker192.168.83.135Cent...

2018-02-26 17:05:01 9510 3

原创 docker 动态映射运行的container端口实例详解

docker动态映射运行的container端口,最近做项目,对于docker动态映射运行的container端口的资料有必要记录下,以便以后在用到,Docker自带了EXPOSE命令,可以通过编写dockerfile加-p参数方便的映射Container内部端口,但是对于已经运行的container,如果你想对外开放一个新的端口,只能编辑dockerfile然后重新build,有点不太方便。其实...

2018-02-26 16:12:38 1117

原创 经过一个星期的整理,将有关于python开发和相关技术的书籍整理了一遍,放在百度云里面了

同题,因为csdn的账号会员即将到期,因此就自己好好整理了一下自己需要的书,相信也是大家所共同需要的,因此放在百度网盘给大家按需下载。都是经典好书啊,相信对绝大多数python玩家来说都是一个新的领域,好好去网盘里面找找你感兴趣的把。百度网盘链接https://pan.baidu.com/s/1qXVecJa

2017-07-14 07:46:05 5971 13

转载 性能测试工具Locust

性能测试工具Locust2016-11-19 23:03 by 虫师, 2467 阅读, 7 评论, 收藏, 编辑An open source load testing tool.一个开源性能测试工具。define user behaviour with python code, and swarm your system with millions of simult

2017-03-30 20:28:14 550

转载 聊聊并发(四)深入分析ConcurrentHashMap

聊聊并发(四)深入分析ConcurrentHashMap本文是作者原创,发表于InfoQ:http://www.infoq.com/cn/articles/ConcurrentHashMap术语定义术语英文解释哈希算法hash algorithm是一种将任意内容的输入转换成相同长度输出的加密方式,其输出被称为哈希值。 哈希表has

2017-03-30 20:27:23 253

原创 进程的状态以及状态转化图、导致转化的事件

今天又重新复习了一下进程方面的知识进程的初始状态进程是通过fork系列的系统调用(fork、clone、vfork)来创建的,内核(或内核模块)也可以通过kernel_thread函数创建内核进程。这些创建子进程的函数本质上都完成了相同的功能——将调用进程复制一份,得到子进程。(可以通过选项参数来决定各种资源是共享、还是私有。)那么既然调用进程处于TASK_RUNNING状态(否则

2017-02-10 20:44:55 8039 1

转载 (八)实际项目中涉及到的缓存数据结构及算法

软件开发中常用的缓存算法主要有:FIFO-先进先出算法,LRU-最近最久未使用,LFU-最近最少使用。实际项目中缓存算法对这些都有涉及。一、理论:1.FIFO(First Input First Output):特点:先进先出,符合公平性,实现简单。数据结构:使用对列淘汰原则:如果一个数据最先进入缓存中,则应该最早淘汰掉。也就是说,当缓存满的时候,应当把最先进入缓存的数据给淘汰

2017-01-19 15:34:28 623

转载 (七)实际项目中常用的加密算法及使用场景

实际项目中的登陆认证、web api接口调用、支付接口调用等场合经常涉及到:md5、sh、 rsa等算法。各大银行接口中经常使用MD5算法对调用接口参数进行签名防篡改。1.MD5(1)MD5定义:MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。是计算机广泛使用的杂凑算法之一(又译摘要算法、哈希算法),主流编程语言普遍已

2017-01-19 15:33:59 742

转载 (六)实际项目中分布式ID生成算法

一、需求缘起几乎所有的业务系统,都有生成一个记录标识的需求,例如:(1)消息标识:message-id(2)订单标识:order-id(3)帖子标识:tiezi-id这个记录标识往往就是数据库中的唯一主键,数据库上会建立聚集索引(cluster index),即在物理存储上以这个字段排序。这个记录标识上的查询,往往又有分页或者排序的业务需

2017-01-19 15:33:33 276

转载 (五)实际项目中分布式系统设计涉及算法总结

paxos算法:basic paxos(读帕克索斯)实现的,另外一种是基于fast paxos算法。1)问题描述分布式中有这么一个疑难问题,客户端向一个分布式集群的服务端发出一系列更新数据的消息,由于分布式集群中的各个服务端节点是互为同步数据的,所以 运行完客户端这系列消息指令后各服务端节点的数据应该是一致的,但由于网络或其他原因,各个服务端节点接收到消息的序列可能不一

2017-01-19 15:33:11 558

转载 (四)实际项目中负载均衡调度算法实际应用

实际项目中负载均衡软件是怎么实现负载均衡功能的呢?通过特定的负载均衡算法来实现:(一).HAProxy的负载均衡调度算法有如下8种:一、roundrobin,表示简单的轮询,这个不多说,这个是负载均衡基本都具备的;二、static-rr,表示根据权重,建议关注;三、leastconn,表示最少连接者先处理,建议关注;四、source,表示根据请求源IP,建议关注;五、uri

2017-01-19 15:32:43 493

转载 (三)实际项目中数据结构—队列的应用

1.队列:定义:一种数据结构,有非阻塞对列和阻塞对列特点:先进先出两种典型操作:队尾添加、队头删除几种对列:非阻塞队列:当对列满或空时进行插入或者读取删除操作,抛出异常或者返回false,不对当前线程阻塞,没有同步或者唤醒策略。阻塞队列:当队列是空的时,从队列中获取元素的操作将会被阻塞,或者当队列是满时,往队列里添加元素的操作会被阻塞。有界队列:一般来说队列的长度都预先

2017-01-19 15:31:54 956

转载 (二)实际项目使用的开发语言中排序算法实现

一.常用排序算法:冒择路希快归堆。数组排序算法时间复杂度对比:算法时间复杂度空间复杂度 最佳平均最差最差QuicksortO(n log(n))O(n log(n))O(n^2)O(log(n))MergesortO(n log(n))

2017-01-19 15:31:18 313

转载 (一)实际项目中树形数据结构与递归算法应用

前言:在大部分个项目中几乎都涉及到菜单的展示,在这里普遍用到了树形数据结构和递归算法:1.举例:建表:(1)模拟效果图:(2)代码片段:2.数据库中运用sql进行树形查询:(1)mysql比较麻烦,稍后展开论述(2)oracle树形查询:使用Start with...Connect By子句递归查询,一般用于一个表维护树形结构的应

2017-01-19 15:30:45 367

原创 python资源大合集

这里有最全的python资源,整理自各个经典书籍和网站https://github.com/hotface

2017-01-19 09:52:44 1424

原创 RabbitMQ消息队列的小伙伴: ProtoBuf(Google Protocol Buffer)

什么是ProtoBuf?     一种轻便高效的结构化数据存储格式,可以用于结构化数据串行化,或者说序列化。它很适合做数据存储或 RPC 数据交换格式。可用于通讯协议、数据存储等领域的语言无关、平台无关、可扩展的序列化结构数据格式。目前提供了 C++、Java、Python 三种语言的 API。     它可以作为RabbitMQ的Message的数据格式进行传输,由于是结构化的数据,

2017-01-16 18:01:47 257

原创 RabbitMQ消息队列(九):Publisher的消息确认机制

在前面的文章中提到了queue和consumer之间的消息确认机制:通过设置ack。那么Publisher能不到知道他post的Message有没有到达queue,甚至更近一步,是否被某个Consumer处理呢?毕竟对于一些非常重要的数据,可能Publisher需要确认某个消息已经被正确处理。      在我们的系统中,我们没有是实现这种确认,也就是说,不管Message是否被Consume了

2017-01-16 18:00:05 203

转载 RabbitMQ消息队列(七):适用于云计算集群的远程调用(RPC)

在云计算环境中,很多时候需要用它其他机器的计算资源,我们有可能会在接收到Message进行处理时,会把一部分计算任务分配到其他节点来完成。那么,RabbitMQ如何使用RPC呢?在本篇文章中,我们将会通过其它节点求来斐波纳契完成示例。1. 客户端接口 Client interface        为了展示一个RPC服务是如何使用的,我们将创建一段很简单的客户端class。 它将会向外

2017-01-16 17:59:01 199

转载 RabbitMQ消息队列(六):使用主题进行消息分发

在上篇文章RabbitMQ消息队列(五):Routing 消息路由 中,我们实现了一个简单的日志系统。Consumer可以监听不同severity的log。但是,这也是它之所以叫做简单日志系统的原因,因为是仅仅能够通过severity设定。不支持更多的标准。        比如syslog unix的日志工具,它可以通过severity (info/warn/crit...) 和模块(auth

2017-01-16 17:58:17 174

转载 RabbitMQ消息队列(五):Routing 消息路由

上篇文章中,我们构建了一个简单的日志系统。接下来,我们将丰富它:能够使用不同的severity来监听不同等级的log。比如我们希望只有error的log才保存到磁盘上。1. Bindings绑定    上篇文章中我们是这么做的绑定:[python] view plain copychannel.queue_bind(exchange=ex

2017-01-16 17:51:54 205

转载 RabbitMQ消息队列(四):分发到多Consumer(Publish/Subscribe)

上篇文章中,我们把每个Message都是deliver到某个Consumer。在这篇文章中,我们将会将同一个Message deliver到多个Consumer中。这个模式也被成为 "publish / subscribe"。    这篇文章中,我们将创建一个日志系统,它包含两个部分:第一个部分是发出log(Producer),第二个部分接收到并打印(Consumer)。 我们将构建两个Con

2017-01-16 17:48:00 243

转载 RabbitMQ消息队列(三):任务分发机制

在上篇文章中,我们解决了从发送端(Producer)向接收端(Consumer)发送“Hello World”的问题。在实际的应用场景中,这是远远不够的。从本篇文章开始,我们将结合更加实际的应用场景来讲解更多的高级用法。   当有Consumer需要大量的运算时,RabbitMQ Server需要一定的分发机制来balance每个Consumer的load。试想一下,对于web applica

2017-01-16 17:30:38 465

转载 RabbitMQ消息队列(二):”Hello, World“

本文将使用Python(pika 0.9.8)实现从Producer到Consumer传递数据”Hello, World“。     首先复习一下上篇所学:RabbitMQ实现了AMQP定义的消息队列。它实现的功能”非常简单“:从Producer接收数据然后传递到Consumer。它能保证多并发,数据安全传递,可扩展。     和任何的Hello world一样,它们都不复杂。我们将会

2017-01-16 17:18:32 175

转载 RabbitMQ消息队列(一): Detailed Introduction 详细介绍

1. 历史    RabbitMQ是一个由erlang开发的AMQP(Advanced Message Queue )的开源实现。AMQP 的出现其实也是应了广大人民群众的需求,虽然在同步消息通讯的世界里有很多公开标准(如 COBAR的 IIOP ,或者是 SOAP 等),但是在异步消息处理中却不是这样,只有大企业有一些商业实现(如微软的 MSMQ ,IBM 的 Websphere MQ

2017-01-16 17:17:23 268

原创 负载均衡算法

负载均衡的基本算法,主要有以下几种(参考F5产品):随机:负载均衡方法随机的把负载分配到各个可用的服务器上,通过随机数生成算法选取一个服务器,然后把连接发送给它。虽然许多均衡产品都支持该算法,但是它的有效性一直受到质疑,除非把服务器的可运行时间看的很重。轮询:轮询算法按顺序把每个新的连接请求分配给下一个服务器,最终把所有请求平分给所有的服务器。轮询算法在大多数情况下都工作的不错,但是如果负

2017-01-16 16:53:47 233

原创 负载均衡一致性hash算法

一致性哈希算法在1997年由麻省理工学院提出的一种分布式哈希(DHT)实现算法,设计目标是为了解决因特网中的热点(Hot spot)问题,初衷和CARP十分类似。一致性哈希修正了CARP使用的简 单哈希算法带来的问题,使得分布式哈希(DHT)可以在P2P环境中真正得到应用。     一致性hash算法提出了在动态变化的Cache环境中,判定哈希算法好坏的四个定义:1

2017-01-16 16:46:25 531

原创 分布式环境中的负载均衡策略

在分布式系统中相同的服务常常会部署很多台,每一台被称为一个服务节点(实例)。通过一些负载均衡策略将服务请求均匀地分布到各个节点,以实现整个系统支撑海量请求的需求。本文描述一些简单的负载均衡策略。Round-robin简单地轮询。记录一个选择位置,每次请求来时调整该位置到下一个节点:curId = ++curId % nodeCnt随机选择随机地在所有节点中选择

2017-01-16 14:33:28 1064

原创 ubuntu安装rabbitmq和python的使用实现

在安装openstack的时候,需要安装rabbitmq,百度了下rabbitmq,发现是用erlang写的,基于对erlang的好感,于是就想了解下rabbitmq。rabbitmq中文翻译的话,主要还是mq字母上:Message Queue,即消息队列的意思。前面还有个rabbit单词,就是兔子的意思,和python语言叫python一样,老外还是蛮幽默的。rabbitmq服务类似于mys

2017-01-16 11:02:19 464

原创 python使用rabbitmq实例七,相互关联编号correlation id

上一遍演示了远程结果返回的示例,但是有一个没有提到,就是correlation id,这个是个什么东东呢?假设有多个计算节点,控制中心开启多个线程,往这些计算节点发送数字,要求计算结果并返回,但是控制中心只开启了一个队列,所有线程都是从这个队列里获取消息,每个线程如何确定收到的消息就是该线程对应的呢?这个就是correlation id的用处了。correlation翻译成中文就是相互关联,也

2017-01-16 11:01:53 1424

原创 python使用rabbitmq实例六,远程结果返回

前面的例子都有个共同点,就是发送端发送消息出去后没有结果返回。如果只是单纯发送消息,当然没有问题了,但是在实际中,常常会需要接收端将收到的消息进行处理之后,返回给发送端。处理方法描述:发送端在发送信息前,产生一个接收消息的临时队列,该队列用来接收返回的结果。其实在这里接收端、发送端的概念已经比较模糊了,因为发送端也同样要接收消息,接收端同样也要发送消息,所以这里笔者使用另外的示例来演示这一过程

2017-01-16 11:00:26 1024

原创 python使用rabbitmq实例五,路由键模糊匹配

上一篇说了路由键的功能,通过设置路由键,可以将消息发送到相应的队列,这里的路由键是要完全匹配,比如info消息的只能发到路由键为info的消息队列。路由键模糊匹配,就是可以使用正则表达式,和常用的正则表示式不同,这里的话“#”表示所有、全部的意思;“*”只匹配到一个词。看完示例就能明白了。这边继上一篇,还是用send.py和receive.py来实现路由键模糊匹配的功能。send.py表示

2017-01-16 11:00:04 451

CentOS7安装zabbix教程

2016-11-14

consolo运行环境搭建

2016-10-22

python实现算法

python实现算法

2016-09-12

常用正则表达式大全

常用正则表达式大全

2016-08-05

空空如也

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

TA关注的人

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