自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

孔天逸'Blog

欢迎访问lgxx.kongtianyi.com,博主业余搞的小玩意儿。

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

原创 @Bean放入其引用Bean中初始化失败分析

以下讨论的问题及术语均在SpringBoot框架下,问题十分小众,仅做整理记录。1. 先说重点Bean依赖属性的注入顺序,与定义顺序无关;最好是将@Bean注解配置的Bean放在@Configuration注解修饰的专门用于配置的类中;2. 问题背景为了方便,将使用注解(@Bean)方法生成的Bean的方法体定义在了使用此Bean的类中, 代码结构如下(为了描述方便,后文我们姑且将initBeanTestService叫做外层Bean,needInitBean叫做内层Bean):编写单元测

2020-10-08 20:34:07 53

原创 apache-common-lang3之mutable包
原力计划

apache-common-lang3中org.apache.commons.lang3.mutable包下的类是干什么用的?MutableInt跟Integer什么区别?跟AtomicInteger什么区别?这里说下我的理解,如有不对的地方,还请不吝赐教。简要概括org.apache.commons.lang3.mutable包对Java基本类型和String提供了一些简单的可变值封装类,比...

2020-04-22 02:56:35 130

原创 MySQLMaxValueIncrementer--Spring MySQL发号器介绍

简介MySQLMaxValueIncrementer.java是一个位于org.springframework.jdbc.datasource.support.incrementer包下的一个基于MySQL数据源的自增发号器类,它利用MySQL的last_insert_id()函数和内存缓存巧妙的实现了支持分布式和高效的发号器功能。继承结构源码阅读早期版本(spring 4.3.6以前)...

2019-11-17 23:31:44 814

翻译 MYSQL LAST_INSERT_ID()/LAST_INSERT_ID(expr)函数介绍

目录简介内容废话时间简介本文翻译自https://dev.mysql.com/doc/refman/5.7/en/information-functions.html#function_last-insert-id,即MYSQL5.7官方文档的一个小部分的一个小节,英文ok的同学移步上述链接即可。主要内容梗概:LAST_INSERT_ID(), 返回本连接(connection)下,上一...

2019-09-15 16:56:32 806

原创 震惊!Selenium分手PhantomJS

背景今天本地调试基于Selenium+PhantomJS的动态爬虫程序顺利结束后,着手部署到服务器上,刚买的热乎的京东云,噼里啪啦一顿安装环境,最后跑的时候报了这么个错误:UserWarning: Selenium support for PhantomJS has been deprecated, please use headless versions of Chrome or Fir...

2018-02-14 00:26:04 36351 23

原创 Celery ValueError: not enough values to unpack (expected 3, got 0)的解决方案

背景最近因项目需要,学习任务队列Celery的用法,跟着官网写Demo,出现如题错误,最终在github的Issues里找到解决办法,记录如下。场景还原本地环境如下:Windows 10Python 3.5.2Celery 4.1.0我是跟着这个前人翻译的中文文档敲的Demo。代码tasks.py:from celery import Celerya

2018-01-12 19:56:13 31365 30

原创 No module named 'django.templates'起因和解决

当我跟着django官网上的教程写到template模板这一部分的时候,出现了上述问题No module named 'django.templates'这我是懵逼的,我代码里压根没直接调用django.templates,而是调用了django.shortcuts.render,由它间接调用了前者,为什么内部django的内部逻辑会出错呢?当然还是自己错了……具StackOverFlow上Hoan

2017-10-23 21:06:13 3830 1

转载 Java值传递以及引用的传递、数组的传递!!

许多编程语言都有2种方法将参数传递给方法——按值传递和按引用传递。与其他语言不同,Java不允许程序员选择按值传递还是按引用传递各个参数,基本类型(byte–short–int–long–float–double–boolean–char)的变量总是按值传递。就对象而言,不是将对象本身传递给方法,而是将对象的的引用或者说对象的首地址传递给方法,引用本身是按值传递的———–也就是说,讲引用的副本传递给

2017-07-02 22:23:23 710

原创 Django配置Ajax跨域调用/设置Cookie

背景前段时间感觉自己使用Hexo搭建的个人独立博客使用起来颇为无力(大抵是多说关服的原因),遂萌生出了自己给自己定制一个博客的想法,恰巧又赶上了学校的“软件课程设计”,要求做一个基于数据库的软件,于是借此契机,筹划自己博客的开发。然而学校这边的条条杠杠是很多的,不得不把自己本来的需求“个人博客”更改为“博客平台”。考虑到自己前台功底实在不敢恭维,于是拉了隔壁寝专攻前台的江某某合作。经过江某某的一番教

2017-06-28 23:24:13 4946 4

原创 Java短路代码失效?不存在的

刚才在刷题过程中掉进了一个坑里,众所周知,Java语法中&&运算符有短路的功能,比如如下代码:public class Main{ public static void main(String[] args) { String s = null; if (1>2 && s.equals("hehe")) { System.out.pri

2017-06-28 21:00:53 780

原创 SpringBoot运行NoSuchMethodError

最近在看《精通Spring 4.x 企业应用开发实战》,学习到第三章Spring Boot,发现配套代码报出如下错误:2017-06-24 15:36:16.905 ERROR 37076 --- [ost-startStop-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Exception sending context initialized eve

2017-06-24 15:52:04 2282

转载 解决Nginx服务器中403 forbidden的错误

nginx 的 403 Forbidden errors 表示你在请求一个资源文件但是nginx不允许你查看。 403 Forbidden 只是一个HTTP状态码,像404,200一样不是技术上的错误。哪些场景需要返回403状态码的场景?网站禁止特定的用户访问所有内容,例:网站屏蔽某个ip访问。访问禁止目录浏览的目录,例:设置autoindex off后访问目录。用户访问只能被内网访问的文件

2017-05-15 11:10:46 3855

原创 基于Redis的布隆过滤器的实现

项目简介包含一个基于Redis的布隆过滤器的实现,以及应用到Scrapy中的Demo。地址:BloomFilterRedis布隆过滤器网上有很多介绍,推荐《数学之美》,介绍的很详尽,此处不再赘述。哈希函数布隆过滤器中需要n个哈希函数,我使用的是Arash Partow提供的常见哈希函数。建立在Redis上的布隆过滤器Redis中有一个数据结构叫做Bitmap(下方有官网详解),它提供一个最大长度为5

2017-04-30 17:57:51 25753 1

转载 Scrapy+PhantomJS+Selenium动态爬虫

转自http://jiayi.space/post/scrapy-phantomjs-seleniumdong-tai-pa-chong#fb_new_comment很多网页具有动态加载的功能,简单的静态页面爬虫对它就无能为力了。这时候就需要PhantomJS+Selenium两大神器,再加上Scrapy爬虫框架,就可以拼凑成一个动态爬虫。PhantomJS简单点说PhantomJS就是一个没有界

2017-04-27 16:43:56 21093 6

原创 Python读写/追加excel文件Demo

三个工具包python操作excel的三个工具包如下,注意,只能操作.xls,不能操作.xlsx。xlrd: 对excel进行读相关操作xlwt: 对excel进行写相关操作xlutils: 对excel读写操作的整合这三个工具包都可以直接使用pip进行下载:sudo pip install xlrdsudo pip install xlwtsudo pip install xlutil

2017-04-02 17:40:28 22276

原创 Python的str强转int时的小问题

数字字符串前后有空格没事:>>> print(int(" 3 "))3但是下面这种带小数点的情况是不可取的:>>> print(int("3.0"))Traceback (most recent call last): File "<stdin>", line 1, in <module>ValueError: invalid literal for int() with base 10

2017-04-01 22:43:24 10957 2

原创 Ubuntu LAMPP Apache启动失败的解决方案

今天在Ubuntu16.04上装XAMPP(LAMPP),装完以后发现apache死活启动不起来,虽然我已经改了默认访问端口和SSL端口,然而并不能解决问题。而且在图形界面里还没有报错信息,于是用命令行启动,看到提示:XAMPP: Another web server with SSL is already running.根据这句关键词搜到linux吧的一个坟贴,才拉我上了坑。解决方案先确定自己的

2017-03-20 20:47:11 2184

原创 Scrapy定时关闭

之前转载过一篇介绍定时执行Scrapy方法的博文:scrapy定时执行抓取任务,并且一直在使用这个方法做增量爬虫。但是问题来了,假设如下情景:某一天,我要爬的网站更新了非常非常多的内容,以至于一天过去了,我的爬虫还没有停止工作。但是我的Ubuntu系统并不知道,于是它又定时的去crontab中执行了定时任务。于是就出现了如下尴尬的情景:我的系统里同时运行着两只有同样功能的爬虫。这太尴尬了,即浪费系统

2017-03-19 22:53:25 4477 2

原创 爬虫爬到含空格的url的处理办法

道友问我的一个问题,之前确实没遇见过,在此记录一下。问题描述在某网站主页提取url进行迭代,爬虫请求主页时没有问题,返回正常,但是在访问在主页提取到的url时出现了400状态码(400 Bad Request)。结论先贴出结论来,如果url里有空格的话,要把空格替换成%20,也就是url编码,否则就会出现400。解决过程首先百度了一下400状态码什么意思: 400页面是当用户在打开网页时,返回给

2017-03-17 19:40:09 2955

原创 SQL Server之user关键字

在使用SQL Server的时候,不过脑创建了一个名为user的数据表,在查询的时候出现了如下错误:关键字 'user' 附近有语法错误。看了半天也没看出来自己sql语句哪里写错了。原来user是SQL Server的关键字,创建数据表的时候应该避开它。官方文档链接: https://msdn.microsoft.com/zh-cn/library/ms173463.aspx

2017-03-15 19:03:19 2566

转载 透明代理、匿名代理、混淆代理、高匿代理有什么区别?

转自http://blog.csdn.net/a19860903/article/details/47146715这4种代理,主要是在代理服务器端的配置不同,导致其向目标地址发送请求时,REMOTE_ADDR, HTTP_VIA,HTTP_X_FORWARDED_FOR三个变量不同。1、透明代理(Transparent Proxy)REMOTE_ADDR = Proxy IP HTTP_VIA =

2017-03-11 21:41:26 5603

原创 Python保存json文件并格式化

背景最近自己搞些小东西,需要用json文件存储些文件属性什么的,但是发现用json包里的json.dump()方法存json文件的效果好丑……(其实是没仔细看方法), 于是上网找了一份格式化json文件的代码,效果挺不错,用了递归的思想,学习了一波并找到了其中一点小bug。然后,发现其实json.dump()方法其实只需要设置一个参数就达到格式化的效果了……下面介绍一下json.dump()和我修改

2017-02-26 17:48:24 29039 2

原创 探究在线课程时长与观看人数的关系——以极客学院为例

背景看网络课程是假期充电的好方法,遇到一节短短的干货网络课,真是让人受益匪浅、回味无穷。但不知大家有没有类似的感受,当你在线上课程平台看到一个感兴趣的课程,并迫不及待的点进去一探究竟时,巨长的课程时长让你的热情瞬间下降了一半。就算仍然饶有兴致的开始了学习,中途可能就打哈哈流泪进而放弃了,下次再看到课程时间过长的,直接pass!是不是就我自己有这个毛病呢?闲来无事,用数据分析的方法来对这个问题一探究竟

2017-02-14 17:49:03 1043

原创 SATA License——开源的泥石流

什么是SATA LicenseSATA License,全称The Star And Thank Author License(下面简称SATA),是zTrix发明的一款基于MIT许可证的集实用与逗逼于一身的开源许可证。特点当你使用了使用SATA的开源软件或文档的时候,在遵守MIT许可证的前提下,你应该马不停蹄的给你所使用的开源项目“点个赞”,比如github上的star或者google code上

2017-02-02 14:04:09 3772

原创 用Scrapy shell调试xpath

昨日一道友问我会不会用scrapy shell检查xpath,我表示没搞过,都是直接在代码里硬怼,尴尬。然而其实也没什么难的,在这记录一下方法。首先还是安利一下国内翻译的scrapy文档,虽然最新的翻译版本是1.0版,scrapy已经出到1.3版,但是这份文档仍然非常好用,只是有些版本差异带来的小坑。在命令行键入scrapy shell进入scrapy shell终端,如果你安装了IPython,

2017-01-17 11:44:39 12226

翻译 zerorpc-python官方入门

原文地址:http://www.zerorpc.io/一个易于使用的,直观的,跨语言的RPCzerorpc是一个在服务端进程上提供分布式通信的轻量级的、可靠的跨语言的库。它基于ZeroMQ和MessagePack。提供流式相应(streamed response)——就像python的生成器(generators)——这让zerorpc不仅仅是个典型的RPC引擎。内置心跳包、超时监测以及从失败请求

2017-01-14 17:10:32 5501

原创 Re:从零开始的程序猿生活

2016年农历新年的晚上,窗外的比往日更加浓重的雾霾给春节增添了更多的祥和气氛。在这美好的氛围里,我在自己的小屋里研究一个困扰了我很多天的问题——为啥我的POST表单提交不了数据!?讲解资料看了一篇又一篇,Apache配置文件检查了一遍又一遍,最后甚至把极客学院老师的Demo下载下来,仍然传不了。那是我大二的寒假,在对网站开发毫无经验、数据库知识一知半解的情况下,强行接了俱乐部老师安排的开发学院实验

2016-12-29 19:50:46 1895 2

原创 Python爬虫爬取动态页面思路+实例(二)

注意:Selenium+PhantomJS已成历史,看官看完本文后不妨再浏览一下震惊!Selenium分手PhantomJS简介上篇Python爬虫爬取动态页面思路+实例(一)提到,爬取动态页面有两种方法分析页面请求selenium模拟浏览器行为(这篇介绍这个)理论上来讲,这种方法可以应对各种动态加载,因为模拟人的行为嘛,如果人自己用浏览器来看网页都加载不出数据来,这...

2016-12-29 11:07:39 28283 6

原创 Python爬虫爬取动态页面思路+实例(一)

简介有时候,我们天真无邪的使用urllib库或Scrapy下载HTML网页时会发现,我们要提取的网页元素并不在我们下载到的HTML之中,尽管它们在浏览器里看起来唾手可得。这说明我们想要的元素是在我们的某些操作下通过js事件动态生成的。举个例子,我们在刷QQ空间或者微博评论的时候,一直往下刷,网页越来越长,内容越来越多,就是这个让人又爱又恨的动态加载。爬取动态页面目前来说有两种方法分析页面请求(这篇

2016-12-21 17:48:06 116379 46

转载 scrapy定时执行抓取任务

原文链接:http://www.cnblogs.com/justinzhang/p/4500409.html在ubuntu环境下,使用scrapy定时执行抓取任务,由于scrapy本身没有提供定时执行的功能,所以采用了crontab的方式进行定时执行:首先编写要执行的命令脚本cron.sh#! /bin/sh

2016-11-18 22:38:54 5124

原创 Hadoop学习笔记(二)——MapReduce

学习资料慕课网——Hadoop大数据平台架构与实践–基础篇MapReduce原理分而治之,一个大任务分成多个小的子任务(map),并行执行后,合并结果(reduce)。MapReduce运行流程基本概念Job & Task 一个Job分成多个Task MapTaskReduceTaskJobTracker 作业调度分配任务、监控任务执行进度监控TskTracker的状态TaskTr

2016-11-14 19:39:58 540

原创 Hadoop学习笔记(一)——文件系统HDFS

学习资料慕课网——Hadoop大数据平台架构与实践–基础篇设计架构基本概念块(Block)NameNodeDataNodeHDFS的文件被分成块进行存储HDFS块的默认大小为64MB块是文件存储处理的逻辑单元,在此上进行存储、查找等操作NameNode和DataNode是HDFS中的两类节点NameNode是管理节点,存放文件元数据文件与数据块的映射表数据块与数据节点的映射表DataN

2016-11-14 19:08:52 609

原创 win10安装python3.x+scrapy

下载安装python3官网下载就好,https://www.python.org/downloads/release/python-352/用installer下载比较方便,它直接把环境变量都帮你配了。升级pip安装好之后在cmd里执行python -m pip install -upgrade pip把pip提到最新版本下载lxmllxml是解析网页用的,scrapy依赖于它,它是一个第三方的库,

2016-11-07 23:00:00 2716

原创 Ubuntu 16.04使用python3.x相关

下载pip3python 3.x版本使用pip3,它会把你想下载的包放到usr/local/lib/python3.5/dist-packages/下,而非usr/local/lib/python2.7/dist-packages/下。sudo apt-get install python3-pip如果你使用的是python 2.x,想下载3.x的包,那么用命令sudo pip3 install x

2016-11-07 09:49:47 10005

翻译 码出你的第一个Django app——Django官方教程(一)

译者: 官方原文链接https://docs.djangoproject.com/en/1.10/intro/tutorial01/,如有错译或理解偏差,请不吝批评指正,先行谢过!码出你的第一个Django app,第一部分让我们通过实例来学习。这个教程会带领你创建一个基础的投票应用。本教程由两部分组成:一个供用户查看和投票的公共站点一个供管理员对投票进行增删改查的站点我们假设你已

2016-11-06 15:58:32 4628 1

原创 Scrapy定向爬虫教程(六)——分析表单并回帖

本节内容在某些时候,网站的某些内容的访问不仅仅需要用户登录,而且需要回复才能看到全部内容,如下图。所以我们需要通过模拟表单提交实现用爬虫回帖,进而获取到隐藏内容。本节就来介绍模拟表单提交的方法,github地址:https://github.com/kongtianyi/heartsong/tree/reply前提你已经了解了HTML表单的相关知识(这个很好找)和scrapy的简单功能以及配置Coo

2016-11-05 10:59:05 5953 4

原创 JAVA窗体程序调用图片、音频、字体资源

简介介绍JAVA窗体程序调用图片、音频、字体三种静态资源的代码。使用这种方法调用静态资源,可以直接把静态资源打包到JAR包里。在音频调用中,可能会由于Eclipse的原因报错,解决办法参见有关import sun.audio.AudioPlayer(或者其它文件)的问题Demo这是我封装的一个修改JFrame外观的类,在里面使用的就是接下来贴的方法。github地址:https://github.c

2016-11-01 22:13:57 856

原创 Node.js:request+cheerio爬虫爬取免费代理

背景在极客学院的微信公众号上看到了一个Node.js写爬虫的入门教程——用nodejs去爬一下A站老司机的文章,感觉挺有意思,于是动手写一下。又想起有位大神用python写过一个抓免费代理的爬虫,于是模仿一下,用nodejs来实现。依赖库request:发请求,下载网页用的,类似于python的urllib2cheerio:解析网页用的,语法和jquery相似,类似于python的beautif

2016-11-01 20:05:32 4256

原创 @contextmanager:Python实现with结构的好方法

常见with结构常见的with结构是在进行文件操作时,比如# 中规中矩的写法f = open("test.txt", "w")f.write("hello world!")f.close()# 采用with结构with open("test.txt", "w") as f: f.write("hello world!")这个结构的好处,一个是简洁,一个是当我们对文件操作的逻辑很长的时候,

2016-10-25 20:13:46 4509

转载 Ubuntu16.04安装Redis

原文地址:http://blog.fens.me/linux-redis-install/前言Redis是常用基于内存的Key-Value数据库,比Memcache更先进,支持多种数据结构,高效,快速。用Redis可以很轻松解决高并发的数据访问问题;做为时时监控信号处理也非常不错。环境原文:Ubuntu 12.04 本人:经测试Ubuntu 16.04仍适用安装Redis服务器端~ sudo ap

2016-10-24 16:53:04 20313 4

基于Redis的布隆过滤器

基于Redis的布隆过滤器,内含scrapy示例程序,github地址:https://github.com/kongtianyi/BloomFilterRedis

2017-04-30

空空如也

空空如也

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

TA关注的人 TA的粉丝

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