自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小岁月太着急

技术博文

  • 博客(42)
  • 资源 (9)
  • 收藏
  • 关注

原创 安装 pyspider ConfigurationError: Could not run curl-config: [Errno 2] No such file or directory

debian安装pycurl写爬虫的时候,root@debian:/# pip install pycurl --upgradeDownloading/unpacking pycurl from https://pypi.python.org/packages/source/p/pycurl/pycurl-7.19.5.1.tar.gz#md5=f44cd54256d7a643ab7b16e

2017-07-31 20:20:22 2707

转载 2017 后端面试经历分享

2017 后端面试经历分享原文地址0.背景博主本人 2015 年毕业于郫县某 985 大学通信工程系,因为大学期间一直自己创业所以错过了大四秋招春招,毕业后又在北京继续创业一年,但在创业公司一直无法沉淀技术累积,于16年年底萌生进大公司学习的想法,于是从16年年底开始通过社招找工作。虽然大学就开始做研发,但无奈简历只看毕业工作经验,所以本人简历只有一年工作经验。在此

2017-07-30 16:10:06 895

原创 Tornado开源

tornado中文翻译

2017-07-30 15:21:19 417

转载 kombu消息框架<二>

http://liuvblog.com/2015/12/11/kombu-library-study-3/0x02 重要对象介绍Connection PoolsKombu提供了两个全局的资源池——connection pool 和 producer pool。先来看看connection pool吧,直接上代码:从上图中可以看出,我们使用kombu.pool.conne

2017-07-30 10:37:04 2274 2

原创 kombu消息框架<一>

https://kombu.readthedocs.io/en/latest/重要概念在Kombu中,有一些重要的概念需要事先了解,有的与RabbitMQ相同,也有的是RabbitMQ中没有的,下面来具体看一下。Producers: 发送消息给exchangeExchanges: 用于路由消息(消息发给exchange,exchange发给对应的queue)。路由就

2017-07-30 10:34:30 4949 1

转载 GitLab的IP地址修改

gitlab安装介绍:https://about.gitlab.com/downloads/#centos7原文地址:http://blog.csdn.net/yulei_qq/article/details/53134654最近使用GitLab 搭建了Git的私有仓库,但是发现私有仓库的地址居然是localhost,不是本机的IP地址,最后百度了一下,找了很久才找到,特此

2017-07-28 19:35:41 933

翻译 Python中接口定义和依赖注入

首先,我们必须明确的一点是:python里无接口类型,定义接口只是一个人为规定,在编程过程自我约束python的类是可以写任意个方法的定义一个接口对继承类进行约束,接口里有什么方法,继承类就必须有什么方法,接口中不能任何功能代码1234567891011

2017-07-27 19:51:44 3754

原创 python常见易错面试题

1、下面这段代码的输出结果是什么?请解释。defextendList(val,list=[]):list.append(val)returnlistlist1= extendList(10)list2= extendList(123,[])list3= extendList('a')print"list1 = %s"% list1

2017-07-27 19:25:20 652

原创 tornado-option模块分析

def set_configs(port=9998, env='local'): if 'env' not in options: sys.path.append('mobile') env = os.environ.get('HAOHUANENV', env) args = {'env': env, 'port': port}

2017-07-25 14:42:16 3727

原创 (sqlalchemy.exc.InvalidRequestError) Can't reconnect until invalid transaction is rolled back

在mysql超过wait_timeout后,连接会挂掉,服务就会报错 OperationalError: (_mysql_exceptions.OperationalError) (2006, 'MySQL server has gone away') ,由于也sqlalchemy关闭了autocommit,隐式使用了事务,还会有错误StatementError: (sqlalchemy.exc.

2017-07-25 10:06:06 19708 1

原创 Ansible执行原理

1. runner不得不说的这个runner接口,这是ansible下层用来执行远程命令的一个接口,无论是上一篇说的Ad-Hoc命令的执行: ansible -i ~/hosts all -m command -a 'who' ,还是最后一个执行playbook的命令: ansible-playbook playbook.yml ,下面掉得都是这个接口。在ansible官网文档的P

2017-07-21 13:43:55 5477

原创 Ansible部署详《二》

配置安装完成之后,先来配置下配置项——.ansible.cfg。ansible执行的时候会按照以下顺序查找配置项:* ANSIBLE_CONFIG (环境变量)* ansible.cfg (当前目录下)* .ansible.cfg (用户家目录下)* /etc/ansible/ansible.cfg还有一个重要的配置是hosts的配置,所有的远程主机需要在hosts中配

2017-07-21 13:42:41 350

原创 ubuntu安装Ansible及部署

获取安装包的服务器进行替换,避免翻墙sudo sed  -i  -re  's/\w+\.archive\.ubuntu\.com/archive.ubuntu.com/g'  /etc/apt/sources.list更新安装库sudo apt-get update然后输入最后的四行命令进行安装的操作sudo apt-get i

2017-07-21 11:03:55 12659 1

翻译 CrawlSpider详解

CrawlSpider是爬取那些具有一定规则网站的常用的爬虫,它基于Spider并有一些独特属性rules: 是Rule对象的集合,用于匹配目标网站并排除干扰parse_start_url: 用于爬取起始响应,必须要返回Item,Request中的一个。因为rules是Rule对象的集合,所以这里也要介绍一下Rule。它有几个参数:link_extractor、callback=Non

2017-07-21 09:53:29 2373

原创 tornado-ioloop的理解

tornado 优秀的大并发处理能力得益于它的 web server 从底层开始就自己实现了一整套基于 epoll 的单线程异步架构(其他 python web 框架的自带 server 基本是基于 wsgi 写的简单服务器,并没有自己实现底层结构。 关于 wsgi 详见之前的文章: 自己写一个 wsgi 服务器运行 Django 、Tornado 应用)。 那么 tornado.ioloop

2017-07-18 19:31:11 4653 2

转载 Tornado异步

原文链接:Tornado异步与延迟任务--Chichele's Blog最近一直在研究Tornado异步操作,然而一番研究后发现要使一个函数异步化的最好方法就是采用相关异步库,但目前很多功能强大的库都不在此列。经过一番查找文档和搜索示范,终于发现了ThreadPoolExecutor模块和run_on_executor装饰器。用法就是建立线程池,用run_on_executor装饰的函

2017-07-17 15:39:12 632

原创 tornado和sqlalchemy结合使用

sqlalchemy 和 tornado的结合sqlalchemy 是python系用的最多的orm,我们的项目也选用了sqlalchemy 。在结合sqlalchemy 和tornado过程中,查阅了大量资料。sqlalchemy 执行各种操作时,最基本的单元为session。sqlalchemy 官方文档建议,尽量适用框架的第三方扩展包来集成sqlalchemy,可以自动的管理se

2017-07-17 15:13:58 6717

原创 scrapy-redis配置

Python 版本为 2.7,3.4 或者3.5 。个人使用3.6版本也没有问题Redis>=2.8Scrapy>=1.4Redis-py>=2.1 。3.X版本的Python 都是自带Redis-py 其余小伙伴如果没有的话、自己 pip 安装一下。开始搞事!开始之前我们得知道scrapy-redis的一些配置:PS 这些配置是写在Scra

2017-07-13 16:49:21 2546

原创 Scrapy-redis源码分析

scrapy是python的一个非常好用的爬虫库,功能非常强大,但是当我们要爬取的页面非常多的时候,单个主机的处理能力就不能满足我们的需求了(无论是处理速度还是网络请求的并发数),这时候分布式爬虫的优势就显现出来,人多力量大。而scrapy-redis就是结合了分布式数据库redis,重写了scrapy一些比较关键的代码,将scrapy变成一个可以在多个主机上同时运行的分布式爬虫。 scrap

2017-07-13 10:25:46 864

翻译 Scrapy-spiders(爬虫)

爬虫(Spiders)Spider 类定义了如何爬取某个(或某些)网站。包括了爬取的动作(例如:是否跟进链接)以及如何从网页的内容中提取结构化数据(爬取item)。 换句话说,Spider 就是您定义爬取的动作及分析某个网页(或者是有些网页)的地方。对于spider,爬取循环做着下面的事情:首先生成抓取第一个URL的初始 request,request 下载完成后生成 resp

2017-07-12 09:36:54 631

翻译 Scrapy-Item Loaders(项目加载器)

项目加载器项目加载器提供了一种方便的机制来填充抓取的项目。即使可以使用自己的类似字典的API填充项目,项目加载器提供了一个更方便的API,通过自动化一些常见的任务,如解析原始提取的数据,然后分配它从剪贴过程中填充他们。换句话说,Items提供了抓取数据的容器,而Item Loader提供了填充该容器的机制。项目加载器旨在提供一种灵活,高效和容易的机制,通过爬虫或源格式(HT

2017-07-11 15:11:44 975

翻译 Scrapy-Item Pipeline(项目管道)

Item Pipeline(项目管道)在项目被蜘蛛抓取后,它被发送到项目管道,它通过顺序执行的几个组件来处理它。每个项目管道组件(有时称为“Item Pipeline”)是一个实现简单方法的Python类。他们接收一个项目并对其执行操作,还决定该项目是否应该继续通过流水线或被丢弃并且不再被处理。项目管道的典型用途是:清理HTML数据验证抓取的数据(检查项目是否包含特

2017-07-11 15:09:07 1659

翻译 Scrapy-Request和Response(请求和响应)

请求和响应Scrapy的Request和Response对象用于爬网网站。通常,Request对象在爬虫程序中生成并传递到系统,直到它们到达下载程序,后者执行请求并返回一个Response对象,该对象返回到发出请求的爬虫程序。上面一段话比较拗口,有web经验的同学,应该都了解的,不明白看下面的图大概理解下。爬虫->Request:创建Request->Resp

2017-07-11 15:06:50 30626

翻译 Scrapy-Link Extractors(链接提取器)

链接提取器链接提取器是其唯一目的是从scrapy.http.Response最终将跟随的网页(对象)提取链接的对象。有Scrapy,但你可以创建自己的自定义链接提取器,以满足您的需求通​​过实现一个简单的界面。scrapy.linkextractors import LinkExtractor每个链接提取器唯一的公共方法是extract_links接收一个Respons

2017-07-11 15:04:42 858

原创 Scrapy-settings源码分析

设置Scrapy设置允许您自定义所有Scrapy组件的行为,包括核心,扩展,管道和爬虫本身。设置的基础结构提供了键值映射的全局命名空间,代码可以使用它从中提取配置值。可以通过不同的机制来填充设置,这将在下面描述。这些设置也是选择当前活动Scrapy项目的机制(如果您有很多)。有关可用内置设置的列表,请参阅:内置设置参考。指定设置当你使用Scrapy,

2017-07-11 14:57:44 2366

原创 Scrapy阅读源码分析<四>

运行入口还是回到最初的入口,在Scrapy源码分析(二)运行入口这篇文章中已经讲解到,在执行scrapy命令时,调用流程如下:调用cmdline.py的execute方法调用命令实例解析命令行构建CrawlerProcess实例,调用crawl和start方法而crawl方法最终是调用了Cralwer实例的crawl,这个方法最终把控制权交由Engine,而start方法注

2017-07-06 12:29:43 3499

原创 Scrapy阅读源码分析<三>

爬虫类接着上次代码讲,上次的运行入口执行到最后是执行了Crawler的crawl方法:1234567891011121314151617181920212223@defer.inlineCallbacksdef crawl(self, *args, **kwargs): assert not self.crawling, "Crawling alrea

2017-07-06 10:39:59 2305

原创 Scrapy阅读源码分析<三>

核心组件初始化核心组件交互流程这次先来讲解这些核心组件初始化都做了哪些工作。爬虫类接着上次代码讲,上次的运行入口执行到最后是执行了Crawler的crawl方法:1234567891011121314151617181920212223@defer.inlineCallbacksdef crawl(self, *args, **kwargs)

2017-07-05 19:03:32 1504 1

原创 Scrapy阅读源码分析<二>

scrapy命令当用scrapy写好一个爬虫后,使用scrapy crawl 命令就可以运行这个爬虫,那么这个过程中到底发生了什么?scrapy命令从何而来?实际上,当你成功安装scrapy后,使用如下命令,就能找到这个命令:12$ which scrapy/usr/local/bin/scrapy使用vim或其他编辑

2017-07-05 14:34:24 9443

原创 Scrapy源码阅读分析<一>

介绍Scrapy是一个基于Python编写的一个开源爬虫框架,它可以帮你快速、简单的方式构建爬虫,并从网站上提取你所需要的数据。这里不再介绍Scrapy的安装和使用,本系列主要通过阅读源码讲解Scrapy实现思路为主。如果有不懂如何使用的同学,请参考官方网站或官方文档学习。(写本篇文章时,Scrapy版本为1.4)简单来说构建和运行一个爬虫只需完成以下几步:使用sc

2017-07-05 14:27:06 4695 2

翻译 取消之前的意图

简介Twisted是一个正在进展的项目,它的开发者会定期添加新的特性并且扩展旧的特性.随着Twisted 10.1.0发布,开发者向 Deferred 类添加了一个新的特性—— cancellation ——这正是我们今天要研究的.异步编程将请求和响应解耦了,如此又带来一个新的可能性:在请求结果和返回结果之间,你可能决定不再需要这个结果了.考虑一下 第十四节 中的诗歌代理服

2017-07-05 10:11:25 800

翻译 defer全貌

简介在上一个部分,我们学习了使用生成器构造顺序异步回调的新方法, 加上 deferreds,我们现在有两种将异步操作链接在一起的方法.但是有时我们需要"并行"的运行一组异步操作.由于Twisted是单线程的,它实际并不会并发运行,但我们希望使用异步I/O在一组任务上尽可能快的工作.以我们的诗歌客户端为例,它从多个服务器同时下载诗歌,而不是一个接一个的方式.这就是使用Twisted下

2017-07-05 10:09:52 333

翻译 内联回调

简介这部分我们将回到"回调"这个主题.我们将介绍另外一种写回调函数的方法,即在Twisted中使用 generators. 我们将演示如何使用这种方法并且与使用"纯" Deferreds 进行对比. 最后, 我们将使用这种技术重写诗歌客户端. 但首先我们来回顾一下 generators的工作原理,以便弄清楚它为何是创建回调的候选方法.简要回顾生成器你可能知道, 一个Py

2017-07-05 10:09:15 507

翻译 Deferred用于同步环境

介绍这部分我们要介绍Deferred的另外一个功能。便于讨论,我们设定如下情景:假设由于众多的内部网请求一个外部诗歌下载服务器,但由于这个外部下载服务器性能太差或请求负荷太重。因此,我们不想将所有的内部请求全部发送到外部服务器。我们的处理办法是,在中间添加一个缓存代理。当一个请求来到后,缓存服务器会从缓存中返回备份(如果有缓存)或者直接从外部服务器获得。部署图如图30所示:

2017-07-05 10:08:16 604

翻译 使用Deferred新功能实现新客户端

介绍回忆下第10部分中的客户端5.1版。客户端使用一个Deferred来管理所有的回调链,其中包括一个格式转换引擎的调用。在那个版本中,这个引擎的实现是同步的。现在我们想实现一个新的客户端,使用我们在第十二部分实现的服务器提供的格式转换服务。但这里有一个问题需要说清楚:由于格式转换服务是通过网络获取的,因此我们需要使用异步I/O。这也就意味着我们获取格式转换服务的API必须是异步实

2017-07-05 10:07:43 286

翻译 增强defer功能的客户端

版本5.0现在我们将要向诗歌下载客户端添加一些新的处理逻辑,包括在第九部分提到要添加的功能。不过,首先我要说明一点:我并不知道如何实现Byronification引擎。那超出了我的编程能力范围。取而代之的,我想实现一个简单的功能,即Cummingsifier。其只是将诗歌内容转换成小写字母:def cummingsify(poem) return poem.lower()

2017-07-05 10:07:00 206

翻译 第二个小插曲,deferred

更多关于回调的知识稍微停下来再思考一下回调的机制。尽管对于以Twisted方式使用Deferred写一个简单的异步程序已经非常了解了,但Deferred提供更多的是只有在比较复杂环境下才会用到的功能。因此,下面我们自己想出一些复杂的环境,以此来观察当使用回调编程时会遇到哪些问题。然后再来看看deferred是如何解决这些问题的。因此,我们为诗歌下载客户端添加了一个假想的功能。设想一

2017-07-05 10:06:02 267

翻译 使用Deferred的诗歌下载客户端

客户端4.0我们已经对deferreds有些理解了,现在我们可以使用它重写我们的客户端。你可以在twisted-client-4/get-poetry.py中看到它的实现。这里的get_poetry已经再也不需要callback与errback参数了。相反,返回了一个用户可能根据需要添加callbacks和errbacks的新deferred。def get_poetry(

2017-07-05 10:05:12 240

翻译 小插曲,Deferred

回调函数的后序发展在第六部分我们认识到这样一个情况:回调是Twisted异步编程中的基础。除了与reactor交互外,回调可以安插在任何我们写的Twisted结构内。因此在使用Twisted或其它基于reactor的异步编程体系时,都意味需要将我们的代码组织成一系列由reactor循环可以激活的回调函数链。即使一个简单的get_poetry函数都需要回调,两个回调函数中一个用于处理

2017-07-05 10:04:18 266

翻译 初识Twisted

用twisted的方式实现前面的内容最终我们将使用twisted的方式来重新实现我们前面的异步模式客户端。不过,首先我们先稍微写点简单的twisted程序来认识一下twisted。最最简单的twisted程序就是下面的代码,其在twisted-intro目录中的basic-twisted/simple.py中。from twisted.internet import rea

2017-07-05 10:02:35 295

Capsule+Networks+A+Survey.pptx

胶囊网络:一种全新的富有吸引力的AI架构。大脑肯定有一种机制,将低层次的视觉信息传递到它认为能最好的处理这些信息的胶囊。针对卷积神经网络模型性能不足的领域问题,人们提出了胶囊网络和动态路由算法。。。。

2019-08-10

胶囊网络及NLP应用介绍.pptx

Capsule是什么呢?Capsule是一个你可以想成他想要取代neuron,原来neuron是output一个值, 而Capsule是output一个vector,在其余的部分它的用法你就把它想成是一个一般的neuron。

2019-08-10

抓取家家电数据

抓取的海尔官网知识堂的数据,可以用于智能家居的使用。。。

2018-05-19

流畅的Python

Python全面讲解

2017-07-27

机器学习Python速查表

机器学习Python速查表

2017-07-27

twisted示例代码

基于twisted源码分析的学习代码

2017-07-05

自然语言处理前沿技术

自然语言处理前沿技术,各大高校提供

2017-06-09

python自然语言处理中文

Python处理自然语言

2017-06-07

Python实践总结

Python常用技巧,技术,框架等总结

2017-06-07

空空如也

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

TA关注的人

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