专注于前后端服务器交互,人工智能,NLP领域
在高性能的IO体系设计中,有几个名词概念常常会使我们感到迷惑不解。具体如下: 序号 问题 1 什么是同步? 2 什么是异步? 3 什么是阻塞? 4 什么是非阻塞? 5 什么是同步阻塞? 6 什么是同步非阻塞? 7 什么是异步阻塞? 8 什么是异步非阻塞? 散仙不才,在查了一部分资料后,愿试着以通俗易懂的方式
先来看些nio基础的类库关系图 用pd大致画了下 相关的图片 上面是一些理论的关系图 下面是一些测试代码 相关的代码 都加了必要的注释 文件通道 FileChannel package test; import java.io.IOException; import java.io.RandomAccessFile; import
这里我们直接上Dockerfile(注意Dockerfile的名字,D必须大写,build的时后会自动去指定的目录下查找) #lhy/centos:ssh # #by:V FROM centos:centos6.6 MAINTAINER liuhuiyao RUN yum -y install openssh-server;yum
Dockfile是一种被Docker程序解释的脚本,Dockerfile由一条一条的指令组成,每条指令对应Linux下面的一条命令。Docker程序将这些Dockerfile指令翻译真正的Linux命令。Dockerfile有自己书写格式和支持的命令,Docker程序解决这些命令间的依赖关系,类似于Makefile。Docker程序将读取Dockerfile,根据指令生成定制的imag
docker start 。启动一个或多少已经被停止的容器 docker stop 。停止一个运行中的容器 docker restart 。重启容器 docker run 镜像名 docker rm 容器名 docker rmi 镜像名。(注意必须删除使用此镜像的容器) docker images 。查看所有镜像 docker ps -a 。查看所有容器 exit 。退
Docker 是 2014 年最为火爆的技术之一,几乎所有的程序员都听说过它。Docker 是一种“轻量级”容器技术,它几乎动摇了传统虚拟化技术的地位,现在国内外已经有越来越多的公司开始逐步使用 Docker 来替换现有的虚拟化平台了。作为一名 Java 程序员,我们是时候一起把 Docker 学起来了! 本文会对虚拟化技术与 Docker 容器技术做一个对比,然后引
安装 yum -y install docker-io 启动docker service docker start 关闭docker service docker stop 查看版本 docker version 查看信息 docker info 注意,docker默认只能在root用户下运行命令,但可以把用户加入到docker组,是用户拥有docker命令权限,命令如
scrapy-redis安装及配置 scrapy-redis 的安装 pip install scrapy-redis easy_install scrapy-redis 下载 http://redis.io/download 版本推荐 stable 3.0.2 运行redis redis-server redis.conf 清空缓存 redis-cli flush
此篇文章为转载,只供学习,有很多问题,如没有解决分布式去重问题。最好还是用scrapy-redis给出的例子代码 前言 scrapy是Python界出名的一个爬虫框架。Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。 虽然scrapy能做的事情很多,但是要做到大规模的分布式应用则捉襟见肘。有
http://scrapy-chs.readthedocs.io/zh_CN/0.24/topics/settings.html#topics-settings-ref srcpy中文文档 https://github.com/rolando/scrapy-redis
scrapy是Python的一个非常好用的爬虫库,功能非常强大,但是当我们要爬取的页面非常多的时候,单个主机的处理能力就不能满足我们的需求了(无论是处理速度还是网络请求的并发数),这时候分布式爬虫的优势就显现出来,人多力量大。而scrapy-Redis就是结合了分布式数据库redis,重写了scrapy一些比较关键的代码,将scrapy变成一个可以在多个主机上同时运行的分布式爬虫。
(1) 用pycharm导入scrapy项目 (2)选择自己编写的scrapy,run一下 (3)点击菜单栏的run ,选择Edit Configurations。 (4)选择运行的spider文件 (5)在右侧script 输入你的cmdline.py 的地址,本人是 /usr/lib64/python2.7/site-packages/scrapy/cmdline.py。scr
创建Scrapy项目 首先,利用命令scrapy startproject csdnSpider创建我们的爬虫项目; 然后,在spiders目录下,创建CSDNSpider.py文件,这是我们主程序所在文件,目录结构如下: 定义Item 找到并打开items.py文件,定义我们需要爬取的元素: [python] view plain
爬取过程中 遇见 百度蜘蛛反爬 robot.txt,我们可以在scrapy 的setting.py 配置文件下配置 ROBOTSTXT_OBEY = False 最终代码 # -*- coding: utf-8 -*- from scrapy.spider import Spider from scrapy.contrib.spiders import CrawlSpi
spring 使用 shiro 后,由于shiro重新封装了原有的session,所以不能再使用原来的session监听方法了 (1)在shiro配额只文件中设置监听类 <!-- shiroSessionListener 监听类--> <bean id="shiroSessionListener" class="com.listener.ShiroSessio
再来一篇 /** * 压缩并导出文件 * @param zipPath 压缩文件临时路径 路径最后不要有 / * @param zipName 压缩为文件名 **.zip * @param createFilesPath 需要压缩的文件列表 * @param request * @param response * @return * @throws
最近公司比较忙,好久没写文章了,今天来一篇。 要生成的目标java文件 package com.cs.qdog.swift.objects; public class F32B { private Double amount; private String currency; public Double getAmount()
每天上班,吃饭,下班,挤地铁,睡觉。日复一日,年复一年。周围的圈子就这么大。每天晚上睡觉前我会想,这不是我要的。可是,为了养家糊口,还是必须重复,重复。。。 也许等买了房子,买了车子。会考虑转行,以前是想做一个建筑工程师,每天能去工地转,虽然烈日炎炎,虽然冰天雪地。但只要让我走,让我时刻在蓝天白云下,让我感受到大自然。我就感觉很舒畅,很淋漓。。。。 程序猿工资是很高,有人说
如果出现nosuchfilederror 或者nosuchmethederror 说明缺少包或者包冲突,或者依赖版本高低问题。 排查 1先看有没有此类或者查看发布过的lib下有没有此类所在的jar, 2查看此类所在的jar在发布后的lib下是否有多个版本包, 3查看此类所在jar所依赖的包版本在发布后的lib下是否匹配。
在scrapy使用过程中,很多情况下需要根据实际需求定制自己的扩展,小到实现自己的pipelines,大到用新的scheduler替换默认的scheduler。 扩展可以按照是否需要读取crawler大致分为两种,对于不需要读取的,比如pipelines的编写,只需要实现默认的方法porcess_item。需要读取的,如scheduler的编写又存在另外的方式。 1.第一种
通过在settings.py中设置DEPTH_LIMIT的值可以限制爬取深度,这个深度是与start_urls中定义url的相对值。也就是相对url的深度。例如定义url为:http://www.domz.com/game/,DEPTH_LIMIT=1那么限制爬取的只能是此url下一级的网页。深度大于设置值的将被ignore。 如图:
一.目的。 自动多网页爬取,这里引出CrawlSpider类,使用更简单方式实现自动爬取。 二.热身。 1.CrawlSpider (1)概念与作用: 它是Spider的派生类,首先在说下Spider,它是所有爬虫的基类,对于它的设计原则是只爬取start_url列表中的网页,而从爬取的网页中获取link并继续爬取的工作CrawlSpider类更
首先创建project: [python] view plain copy scrapy startproject CSDNBlog 一. items.py编写 在这里为清晰说明,只提取文章名称和文章网址。 [python] view plain copy
一. 核心架构关于核心架构,在官方文档中阐述的非常清晰,地址:http://doc.scrapy.org/en/latest/topics/architecture.html。英文有障碍可查看中文翻译文档,笔者也参与了Scraoy部分文档的翻译,我的翻译GitHub地址:https://github.com/younghz/scrapy_doc_chs。源repo地址:https://gi
1. 前期基础准备。 Oh,不能在准备了,直接来。 (1) 创建项目。 输入: [python] view plain copy scapy startproject w3school 以上创建项目w3school。这时会产生w3school文件夹,文件夹下文件如下:
AngularJS支持使用服务的体系结构“关注点分离”的概念。服务是JavaScript函数,并负责只做一个特定的任务。这也使得他们即维护和测试的单独实体。控制器,过滤器可以调用它们作为需求的基础。服务使用AngularJS的依赖注入机制注入正常。 AngularJS提供例如许多内在的服务,如:$http, $route, $window, $location等。每个服务负责例如
介绍 AngularJS 嵌套路由:,来看看嵌套的ui-router状态是怎么回事. ui-router和同属AngularJS框架一部分的ng-route一样强大. ui-router提供了让我们可以做路由嵌套和视图命名的特性. 我们将在示例中看到ui-router中存在的所有类型. 背景 引述我之前那篇文章开头给出的使用ui-router框架实现的简
页面传参数方法:1、$rootScope。2、(url)/user/:name/:age。 页面转换方法:1、href="#/"。2、$state.go。3、$location.path。4、ui-sref (1)自带路由ngRoute <html> <head> <meta charset="utf-8">
一、为什么要用require.js? 最早的时候,所有Javascript代码都写在一个文件里面,只要加载这一个文件就够了。后来,代码越来越多,一个文件不够了,必须分成多个文件,依次加载。下面的网页代码,相信很多人都见过。 <script src="1.js"></script> <script src="2.js"><
通常表单submit传的是 json对象 ajax 传的是json对象 angular传的是json字符串 对于后台接收json对象不需要再参数上加@RequestBody 而对于接收json字符串 需要加@RequestBody,并且要引入jackjson jar包 (1)angular向后台传json字符串 @RequestBody 前台angular代码 $h
myeclipse不是很稳定,总是会出各种各样的漏子,我一直都这样觉得,但是又觉得比eclipse功能多多了。 这次出现的问题是maven项目被IDE识别了,但是没有出现maven dependencies这个库,如图: 在eclipse3.7中我改动pom.xml就正常了,maven dependencies库出现了,但是myeclipse2014没点反映,pom
Scrapy介绍 Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架。 可以应用在包括数据挖掘,信息处理或存储历史数据等一系列的程序中。 所谓网络爬虫,就是一个在网上到处或定向抓取数据的程序,当然,这种说法不够专业,更专业的描述就是,抓取特定网站网页的HTML数据。抓取网页的一般方法是,定义一个入口页面,然后一般一个页面会有其他页面的URL,于是从当前页
第一种方法:判断session中保存的token 比较麻烦,每次在提交表单时都必须传入上次的token。而且当一个页面使用ajax时,多个表单提交就会有问题。 注解Token代码: package com.thinkgem.jeesite.common.repeat_form_validator; import java.lang.annotation.Elem
IPv6访问网站 centos7.1下,默认就启用了IPv6,所以可以通过网卡查看里面的。执行ifconfig命令 禁用IPv6 编辑文件 vi /etc/default/grub 修改红色部分修改后如下 (红色部分) GRUB_TIMEOUT=5 GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)" G
代码下载地址 http://download.csdn.net/detail/u013378306/9656546 1.环境搭建:见上一篇博客 整个项目的结构图: 2.编写DetectFaceDemo.java,代码如下: package com.njupt.zhb.test; import org.opencv.core.Core;
代码下载地址 http://download.csdn.net/detail/u013378306/9656546 1.首先下载OpenCV2.4.6,下载的时候,选择windows版的。然后安装 2.其实安装的过程就是解压的过程,并没有什么安装向导之类的,安装完成后,我们最关心的是这个目录:opencv\build\java 如下图所示 注意:opencv-246.
Java把内存分成两种,一种叫做栈内存,一种叫做堆内存 在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用。 堆内存用于存放由new创建的对象和数组。在堆中分配的内存,由java虚拟机自
概述 VisualVM在 jdk安装目录的bin目录下,可直接双击使用 开发大型 Java 应用程序的过程中难免遇到内存泄露、性能瓶颈等问题,比如文件、网络、数据库的连接未释放,未优化的算法等。随着应用程序的持续运行,可能会造成整个系统运行效率下降,严重的则会造成系统崩溃。为了找出程序中隐藏的这些问题,在项目开发后期往往会使用性能分析工具来对应用程序的性能进行分析和优化。
java通过Executors提供四种线程池,分别为: newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。 newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。 newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任
freemarker 通过字符串模板生成,会把map中 name 对应的变量替换字符串模板中的${name} package com.thinkgem.jeesite.test.test; import java.io.IOException; import java.io.StringReader; import java.io.StringWriter; import java.
读取excel excel 格式 excel.py # -*- coding: utf-8 -*- import xdrlib ,sys import xlrd import json def open_excel(file= '/home/lhy/data/data.xlsx'): try: data = xlrd.open_workboo
jieba知识 全几天看到高手下了个jieba分词快速入门的东西 ,希望关注我博客的人也能看得到 https://github.com/SalutLyndon/hello-world/blob/master/中文自然语言处理基本流 # coding: utf-8 # ###jieba特性介绍 # 支持三种分词模式
Python的scikit-learn包下有计算tf-idf的api,研究了下做个笔记 1 安装scikit-learn包 [python] view plain copy sudo pip install scikit-learn 2 中文分词采用的jieba分词,安装jieba分词包
mavan 本人测试使用以下可用 <dependency> <groupId>org.python</groupId> <artifactId>jython-standalone</artifactId> <version>2.7.0</version> </depende
今天,我们再来研究另一个相关的问题。有些时候,除了找到关键词,我们还希望找到与原文章相似的其他文章。比如,"Google新闻"在主新闻下方,还提供多条相似的新闻。 为了找出相似的文章,需要用到"余弦相似性"(cosine similiarity)。下面,我举一个例子来说明,什么是"余弦相似性"。 为了简单起见,我们先从句子着手。 句子A:我喜欢看电视,
摘要:文本聚类是搜索引擎和语义web的基本技术,这次本蛙和大家一起学习一下简单的文本聚类算法,可能不能直接用于实际应用中,但对于想学搜索技术的初学者还是有一定入门作用的。这里会用到TF/IDF权重,用余弦夹角计算文本相似度,用方差计算两个数据间欧式距离,用k-means进行数据聚类等数学和统计知识。关于这些概念可以去google,或者参考文本后的参考链接。 思路:计算两篇文档的相
这个标题看上去好像很复杂,其实我要谈的是一个很简单的问题。 有一篇很长的文章,我要用计算机提取它的关键词(Automatic Keyphrase extraction),完全不加以人工干预,请问怎样才能正确做到? 这个问题涉及到数据挖掘、文本处理、信息检索等很多计算机前沿领域,但是出乎意料的是,有一个非常简单的经典算法,可以给出令人相当满意的结果。它简单到都不需要高
源码目录 src/main/java com.thinkgem.jeesite ├ common 公共模块存放目录 │ ├ beanvalidator 实体Bean验证相关类 │ ├ log 日志工具相关类 │ ├ mapper 各种Object到Xm
一、搭建环境: 1、这是我的Eclipse、Maven等环境,此步骤略过。 注意:以前试过jdk1.6以上都可以使用jeesite 2、下载最新版本jeesite源码: 下载地址: [GitHub/jeesite] https://github.com/thinkgem/jeesite 下载时注意jeesite的版本,以前先下了一个比较老的版本
PostgreSQL 是一个自由的对象-关系数据库服务器(数据库管理系统),它在灵活的 BSD-风格许可证下发行。它提供了相对其他开放源代码数据库系统(比如 MySQL 和 Firebird),和专有系统(比如 Oracle、Sybase、IBM 的 DB2 和 Microsoft SQL Server)之外的另一种选择。 Docker 是一个开源的应用容器引擎,让开发者可