<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[songbob的专栏]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/songbob</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; songbob]]></copyright><item><title><![CDATA[TBScheduleConsole的搭建]]></title><link>https://blog.youkuaiyun.com/songbob/article/details/84837851</link><guid>https://blog.youkuaiyun.com/songbob/article/details/84837851</guid><author>songbob</author><pubDate>Wed, 05 Dec 2018 16:26:52 +0800</pubDate><description><![CDATA[一、概述：

TBSchedule 作为分布式的定时任务调度。其启动需要基于zookeeper。

网上的地址很多都过期了。在这里给自己记录一下，以备后用。

二、下载地址：

zookeeper+TOMCAT+TBSchedule集合

三、方法及步骤：

1、装好TOMCAT，将ScheduleConsole.war扔到webapp中。

2、启动zookeeper的zkServer.cmd/...]]></description><category></category></item><item><title><![CDATA[spring boot 创建项目的步骤及注意事项]]></title><link>https://blog.youkuaiyun.com/songbob/article/details/84784480</link><guid>https://blog.youkuaiyun.com/songbob/article/details/84784480</guid><author>songbob</author><pubDate>Tue, 04 Dec 2018 11:17:34 +0800</pubDate><description><![CDATA[spring boot 自集成tomcat 框架等 基础结构，快速搭环境的利器。

1 访问：https://start.spring.io/



可配置MAVEN/GRADLE格式、boot版本; group，artifact 目录结构等信息。

2将生成的工程导入到idea中。



注意：这里Application要放在将要执行文件的最上层。因为SpringBoot项目的Bean装配默认规...]]></description><category></category></item><item><title><![CDATA[JAVA 8 stream findfirst()、findAny、get() 报 null point exception 空指针异常]]></title><link>https://blog.youkuaiyun.com/songbob/article/details/82755015</link><guid>https://blog.youkuaiyun.com/songbob/article/details/82755015</guid><author>songbob</author><pubDate>Tue, 18 Sep 2018 11:50:41 +0800</pubDate><description><![CDATA[说明：JAVA8 用stream流来循环取LIST值时，如果值为空时会报 null point exception异常，解决办法为提前判断该值是否为空。

下面是决断为空的写法。

 

场景说明：我有一个产品LIST，我要遍历此LIST，生成一个MAP，key为id,value为name

BEAN如下：


@Setter
@Getter
public class Product {
	pri...]]></description><category></category></item><item><title><![CDATA[JAVA PPT转MP4 （基于VBSCRIPT）]]></title><link>https://blog.youkuaiyun.com/songbob/article/details/80523019</link><guid>https://blog.youkuaiyun.com/songbob/article/details/80523019</guid><author>songbob</author><pubDate>Thu, 31 May 2018 14:14:18 +0800</pubDate><description><![CDATA[场景：业务需要，要使用JAVA根据ppt模板自动生成MP4视频。调研：查了一下比较符合的PPT 操作方式，POI，ASPOSE，VBA1. POI 支持PPT文件的读，修改，写。HSLF，XLSF支持PNG，以及基于Graphics2D 的输入文件格式 详见：XLSF2. ASPOSE 支持的输出文件相对多一些 outputFormat,但是，很遗憾，不支持MP4类视频文件。3. VBSCRIPT...]]></description><category></category></item><item><title><![CDATA[redis+spring 注解Cacheable 设定redis的生存周期。]]></title><link>https://blog.youkuaiyun.com/songbob/article/details/80436019</link><guid>https://blog.youkuaiyun.com/songbob/article/details/80436019</guid><author>songbob</author><pubDate>Thu, 24 May 2018 17:00:31 +0800</pubDate><description><![CDATA[业务场景：

1、要取得当日汇率（美元兑人民币，及人民币兑美元），精度不高，频率不高，一天取一到两次即可。

2、取得的汇率作为所有用户的基础汇率用做其它运算。所有用户共用一套汇率，不区分用户。

解决方案：

1、初步考虑

     i 、建表，存汇率值。

     ii、用定时任务 调用其它网站提供的汇率API 来更新表中固定汇率。频率用定时任务的参数来设置。

     iii、redi...]]></description><category></category></item><item><title><![CDATA[在JAVA中针对LIST进行排序]]></title><link>https://blog.youkuaiyun.com/songbob/article/details/78352817</link><guid>https://blog.youkuaiyun.com/songbob/article/details/78352817</guid><author>songbob</author><pubDate>Thu, 26 Oct 2017 13:38:38 +0800</pubDate><description><![CDATA[工作原因，需要针实时取得的数据进行排序，而这些数据没有存在于DB中。所以，就要在JAVA中进行排序。

为此，写了一个基于Collections.sort来排序的方法。
说明：
1 数据没有存在于DB中。
2 本排序只提供单列，不提供复合，有需要的可以自行重写。
3 本排序基于Collections.sort，重写Comparator()来实现。
4 排序针对于LIST，参数为LIS]]></description><category></category></item><item><title><![CDATA[archetype模板的使用中碰到的问题]]></title><link>https://blog.youkuaiyun.com/songbob/article/details/77962877</link><guid>https://blog.youkuaiyun.com/songbob/article/details/77962877</guid><author>songbob</author><pubDate>Wed, 13 Sep 2017 13:15:27 +0800</pubDate><description><![CDATA[http://blog.youkuaiyun.com/sxdtzhaoxinguo/article/details/46895013]]></description><category></category></item><item><title><![CDATA[爬取对象的解析]]></title><link>https://blog.youkuaiyun.com/songbob/article/details/77877539</link><guid>https://blog.youkuaiyun.com/songbob/article/details/77877539</guid><author>songbob</author><pubDate>Thu, 07 Sep 2017 10:21:39 +0800</pubDate><description><![CDATA[问题描述：
最近爬取的对象，会取得一个标签下的大量的text，而想要的结果却在text其中一部分，这样就需要对text再进行解析。
以取AMZ站的商品图片为例：
1 其图片信息不写在DIV中，即便你点击预览，也不会有异步的后台调用。图片的内容装入DIV是依赖于JS实现的。而JS是在初使化时就加载好。
这样减少后台的压力。这样，就需要对JS的内容进行解析，其内容如下：


2 首先，可]]></description><category></category></item><item><title><![CDATA[精确匹配字符串的小技巧]]></title><link>https://blog.youkuaiyun.com/songbob/article/details/77863623</link><guid>https://blog.youkuaiyun.com/songbob/article/details/77863623</guid><author>songbob</author><pubDate>Wed, 06 Sep 2017 11:15:54 +0800</pubDate><description><![CDATA[问题描述：
最近用PYTHON在做爬虫，查到的字符串如下：
aa = {&quot;productId&quot;:&quot;XSD111:,&quot;product&quot;:&quot;pro&quot;}
目的是只要后面product里的值pro，但是用find(&quot;product&quot;,aa)却将productId的位置暴露出来，这不是我想要的结果。我想要的是精确的全词匹配
分析：
解决方案想了一下，
1 查product，限制长度。
2 查p]]></description><category></category></item><item><title><![CDATA[pycharm 快捷键（自己常用）]]></title><link>https://blog.youkuaiyun.com/songbob/article/details/77848822</link><guid>https://blog.youkuaiyun.com/songbob/article/details/77848822</guid><author>songbob</author><pubDate>Tue, 05 Sep 2017 11:02:39 +0800</pubDate><description><![CDATA[http://blog.youkuaiyun.com/pipisorry/article/details/39909057]]></description><category></category></item><item><title><![CDATA[一个简单的异步爬取信息]]></title><link>https://blog.youkuaiyun.com/songbob/article/details/77837128</link><guid>https://blog.youkuaiyun.com/songbob/article/details/77837128</guid><author>songbob</author><pubDate>Mon, 04 Sep 2017 14:47:43 +0800</pubDate><description><![CDATA[■写在前头：
在作有异步加载页的爬虫，要理解其原理。带AJAX页因为一次获取不到，所以要想办法摸拟出效果，得到返回数据，再分析，最终才能得到想要的结果。
■所需import 包
import requests
from lxml import etree

# -*- coding: utf-8 -*-
import scrapy
import requests
from lxml i]]></description><category></category></item><item><title><![CDATA[爬虫用到的一些包（不定时更新）]]></title><link>https://blog.youkuaiyun.com/songbob/article/details/77835646</link><guid>https://blog.youkuaiyun.com/songbob/article/details/77835646</guid><author>songbob</author><pubDate>Mon, 04 Sep 2017 11:30:04 +0800</pubDate><description><![CDATA[■win32api

说明：64位机上运行32位时所用到的包
安装方法：pip install win32api

■requests 
说明：用于异步取得页面内容
安装方法：pip install requests]]></description><category></category></item><item><title><![CDATA[eclipse下python安装scrapy以及切换python版本、GIT配置]]></title><link>https://blog.youkuaiyun.com/songbob/article/details/77716435</link><guid>https://blog.youkuaiyun.com/songbob/article/details/77716435</guid><author>songbob</author><pubDate>Wed, 30 Aug 2017 15:52:59 +0800</pubDate><description><![CDATA[写在前头：关到python的安装，本文不写。网上的方法一堆，也没有什么难点。
这里主要记录一下有关在windows下scrapy的安装以及安装过程中碰到的问题以及解决办法。

GIT 安装与使用
http://www.cnblogs.com/lovychen/p/5644700.html]]></description><category></category></item><item><title><![CDATA[ORACLE 全文检索用CONTAINS关键字时CLOB字段更新后检索不到]]></title><link>https://blog.youkuaiyun.com/songbob/article/details/18733453</link><guid>https://blog.youkuaiyun.com/songbob/article/details/18733453</guid><author>songbob</author><pubDate>Fri, 24 Jan 2014 14:47:34 +0800</pubDate><description><![CDATA[ORACLE 全文检索时，更新后的字段却检索不到

前提：

1 该字段是CLOB类型

2 用的检索关键字是CONTAINS

SQL文如下 



select * from tableA
where
CONTAINS (globle, 'china');


*注：如果检索字段中含有包含'-'的数据时要在前加上'\'



select * from tableA
where
CONTAIN...]]></description><category></category></item><item><title><![CDATA[正则表达式 模糊搜索]]></title><link>https://blog.youkuaiyun.com/songbob/article/details/8425446</link><guid>https://blog.youkuaiyun.com/songbob/article/details/8425446</guid><author>songbob</author><pubDate>Mon, 24 Dec 2012 16:10:44 +0800</pubDate><description><![CDATA[例如 有如下SQL
INSERT INTO Table1 (A, B, C) VALUES (to_timestamp('20121224','YYYY-MM-DD HH24:MI:SS'),‘’,to_timestamp('20121224','YYYY-MM-DD HH24:MI:SS')
INSERT INTO Table1 (A, B, C) VALUES (to_timestamp(]]></description><category></category></item><item><title><![CDATA[linux 共享文件夹]]></title><link>https://blog.youkuaiyun.com/songbob/article/details/8270327</link><guid>https://blog.youkuaiyun.com/songbob/article/details/8270327</guid><author>songbob</author><pubDate>Fri, 07 Dec 2012 17:31:01 +0800</pubDate><description><![CDATA[修改
/etc/samba/smb.conf
加入
[共享文件夹名]
path = 路径
writeable = 可否写入 (true / false)
browseable = 可否查看 (true / false)
guest ok = 可否允许guest用户访问 (true / false)


如果添加完没效果，重启smb服务
service smb restart]]></description><category></category></item><item><title><![CDATA[VBA 统计文件个数]]></title><link>https://blog.youkuaiyun.com/songbob/article/details/7916072</link><guid>https://blog.youkuaiyun.com/songbob/article/details/7916072</guid><author>songbob</author><pubDate>Tue, 28 Aug 2012 14:37:17 +0800</pubDate><description><![CDATA[说明：
1第一个sheet名为Sheet1,第二个名为step
2两个sheet相比较，如果相同，将文件个数放到Sheet1的第二列
 

Sub countStep()
'
' countStep Macro
'
' Keyboard Shortcut: Ctrl+Shift+T

Dim sheetYCnt As Integer
Dim stepYCnt As Inte]]></description><category></category></item><item><title><![CDATA[VBA 统计文件（规则:A包含B）]]></title><link>https://blog.youkuaiyun.com/songbob/article/details/7916062</link><guid>https://blog.youkuaiyun.com/songbob/article/details/7916062</guid><author>songbob</author><pubDate>Tue, 28 Aug 2012 14:34:33 +0800</pubDate><description><![CDATA[说明：
1第一个sheet名为Sheet1,第二个名为step
2两个sheet相比较，如果A包含B，将step的第4列，放到Sheet1的第4列
 
Sub countStep()
'
' countStep Macro
'
' Keyboard Shortcut: Ctrl+Shift+T

Dim sheetYCnt As Integer
Dim stepYCnt As]]></description><category></category></item><item><title><![CDATA[VBA 统计文件（规则:'\'以后的文件名）]]></title><link>https://blog.youkuaiyun.com/songbob/article/details/7916046</link><guid>https://blog.youkuaiyun.com/songbob/article/details/7916046</guid><author>songbob</author><pubDate>Tue, 28 Aug 2012 14:32:59 +0800</pubDate><description><![CDATA[说明：
1第一个sheet名为Sheet1,第二个名为step
2两个sheet相比较，如果相同，将step的第五列，放到Sheet1的第二列
Sub countStep()
'
' countStep Macro
'
' Keyboard Shortcut: Ctrl+Shift+T

Dim sheetYCnt As Integer
Dim stepYCnt As Inte]]></description><category></category></item><item><title><![CDATA[VBA 重置所有单元格选中位置到A1]]></title><link>https://blog.youkuaiyun.com/songbob/article/details/7915997</link><guid>https://blog.youkuaiyun.com/songbob/article/details/7915997</guid><author>songbob</author><pubDate>Tue, 28 Aug 2012 14:26:34 +0800</pubDate><description><![CDATA[重置所有单元格选中位置到A1
首先在EXCLE的常用里打开'开发'

指定快捷键

插入代码
Sub Macro1()
' reset Sheets
' Macro1 Macro
'
    Dim pageCount As Integer
    pageCount = Sheets.Count
    For i = 1 To pageCount 
        I]]></description><category></category></item></channel></rss>