<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[成长之路]]></title><description><![CDATA[技术的点滴记录，成长的每个脚步]]></description><link>https://blog.youkuaiyun.com/u010086122</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; u010086122]]></copyright><item><title><![CDATA[SQL备忘--通用表表达式]]></title><link>https://blog.youkuaiyun.com/u010086122/article/details/135553230</link><guid>https://blog.youkuaiyun.com/u010086122/article/details/135553230</guid><author>u010086122</author><pubDate>Mon, 15 Jan 2024 09:34:05 +0800</pubDate><description><![CDATA[有时在一个SQL内，会存在多个相同的子查询，要反复查询同一份数据。此种情况可以把子查询抽离出来，做成，在SQL内像使用变量一样，多次引用子查询的结果，来更好的精简SQL，提升性能和可读性。]]></description><category></category></item><item><title><![CDATA[SQL备忘--集合运算]]></title><link>https://blog.youkuaiyun.com/u010086122/article/details/135276099</link><guid>https://blog.youkuaiyun.com/u010086122/article/details/135276099</guid><author>u010086122</author><pubDate>Mon, 15 Jan 2024 09:33:39 +0800</pubDate><description><![CDATA[本文讨论的是两个子查询结果的合并问题， 是行维度下的合并处理例如子查询A查出5条记录、子查询B查出3条记录，那么将两个结果合并，则共返回8条记录子查询的列字段是相同的，既要求数量、字段名相同，有要求类型匹配能互相兼容（可以隐式转换匹配）]]></description><category></category></item><item><title><![CDATA[SQL备忘--Like/逻辑运算/Order By排序/Top N特殊处理备忘]]></title><link>https://blog.youkuaiyun.com/u010086122/article/details/134180965</link><guid>https://blog.youkuaiyun.com/u010086122/article/details/134180965</guid><author>u010086122</author><pubDate>Wed, 27 Dec 2023 11:06:18 +0800</pubDate><description><![CDATA[在where 条件中使用LIKE关键字进行匹配WHERE c1 LIKE ‘%end’				//可以匹配到“friend”等单词。]]></description><category></category></item><item><title><![CDATA[SQL备忘--子查询与ALL/ANY运算符]]></title><link>https://blog.youkuaiyun.com/u010086122/article/details/134181216</link><guid>https://blog.youkuaiyun.com/u010086122/article/details/134181216</guid><author>u010086122</author><pubDate>Wed, 27 Dec 2023 10:55:36 +0800</pubDate><description><![CDATA[此时，可以通过比较运算符(=、!=、<、<=、>、>=)与ALL、ANY的组合，来表示等于、不等于、大于…由此可见子查询用法广泛，可用在SQL基本语句的每个位置。在SQL查询语句中包含了其他的查询语句，出现了SQL语句的嵌套，即为使用了嵌套子查询。此时需确保查询结果不能出现多行或多列的情况，否则sql报错。多行数据时，使用IN、或者ALL、ANY运算符来进行匹配，例如下例子。号判断子查询的结果，只是等号左边要写成多个数据在()内的格式。SQL的子查询中，可能查询到多个结果，因此一般都用IN来匹配。]]></description><category></category></item><item><title><![CDATA[SQL备忘--函数]]></title><link>https://blog.youkuaiyun.com/u010086122/article/details/133710920</link><guid>https://blog.youkuaiyun.com/u010086122/article/details/133710920</guid><author>u010086122</author><pubDate>Fri, 03 Nov 2023 10:18:07 +0800</pubDate><description><![CDATA[COALESCE(exp1, exp2, exp3, …)接收一个输入列表，返回第一个非NULL的参数；SQL Server、SQLite没有提供IF函数，提供的是的IIF函数，用法与Mysql的IF函数一样。MYSQL提供了一个IF(expr1, val1, val2)函数，类似于java的。可以用COALESCE将NULL转换为别的默认值，类似于CASE WHEN。如果指定COUNT()内统计某个字段，则不会统计此字段为NULL的数据。根据某个表达的执行结果，匹配对应的值。类型转换可能会导致精度丢失。]]></description><category></category></item><item><title><![CDATA[SQL备忘--特殊状态“未知“以及“空值NULL“的判断]]></title><link>https://blog.youkuaiyun.com/u010086122/article/details/134165393</link><guid>https://blog.youkuaiyun.com/u010086122/article/details/134165393</guid><author>u010086122</author><pubDate>Thu, 02 Nov 2023 11:22:04 +0800</pubDate><description><![CDATA[使用IN/NOT IN/ALL/ANY时，切记不要在选项中设置NULL。对于子查询做以上匹配结果时，也要注意务必过滤下NULL数据。]]></description><category></category></item><item><title><![CDATA[Java9集合类新增功能]]></title><link>https://blog.youkuaiyun.com/u010086122/article/details/131474450</link><guid>https://blog.youkuaiyun.com/u010086122/article/details/131474450</guid><author>u010086122</author><pubDate>Fri, 30 Jun 2023 14:06:30 +0800</pubDate><description><![CDATA[Java8及Java9在集合Collection类中新增了一些很好用的新方法，能方便程序员更便捷的处理集合数据，本文对其中的一些方法进行总结。]]></description><category></category></item><item><title><![CDATA[Java8新特性：Stream流处理使用总结]]></title><link>https://blog.youkuaiyun.com/u010086122/article/details/129427682</link><guid>https://blog.youkuaiyun.com/u010086122/article/details/129427682</guid><author>u010086122</author><pubDate>Fri, 10 Mar 2023 18:08:44 +0800</pubDate><description><![CDATA[整理下Stream流的常用操作，以备后续处理集合类数据时快速查询和使用]]></description><category></category></item><item><title><![CDATA[SpringBoot下HystrixDashboard出现Http401状态码导致“hystrix dashboard Unable to connect to Command”数据无法出现的解决办法]]></title><link>https://blog.youkuaiyun.com/u010086122/article/details/121309682</link><guid>https://blog.youkuaiyun.com/u010086122/article/details/121309682</guid><author>u010086122</author><pubDate>Sat, 13 Nov 2021 21:11:16 +0800</pubDate><description><![CDATA[一. 问题描述
笔者在用SpringBoot 2.1.4.RELEASE + SpringCloud Greenwich.SR5学习Hystrix时，在Hystrix Dashboard页面出现了一个常见错误：hystrix dashboard Unable to connect to Command Metric Stream，截图如下：

而我直接在浏览器中输入hystrix.stream地址：http://localhost:20081/actuator/hystrix.stream 是能访问到接口内]]></description><category></category></item><item><title><![CDATA[SpringBoot+Freemarker+Security环境下自建/login登录页面，并解决一直302跳转登录首页、无法登录成功的问题]]></title><link>https://blog.youkuaiyun.com/u010086122/article/details/121288322</link><guid>https://blog.youkuaiyun.com/u010086122/article/details/121288322</guid><author>u010086122</author><pubDate>Fri, 12 Nov 2021 17:29:48 +0800</pubDate><description><![CDATA[一. 开发步骤
最近在学习SpringBoot WebSocket编写群聊天的功能，需要用到用户体系，为了方便直接引入了Security包，具体pom如下：
    &lt;parent&gt;
        &lt;groupId&gt;org.springframework.boot&lt;/groupId&gt;
        &lt;artifactId&gt;spring-boot-starter-parent&lt;/artifactId&gt;
        &lt;version&gt]]></description><category></category></item><item><title><![CDATA[webpack5.27：UglifyJsPlugin、webpack-merge、html-webpack-plugin报错解决--《Vue.js实战》采坑]]></title><link>https://blog.youkuaiyun.com/u010086122/article/details/115286929</link><guid>https://blog.youkuaiyun.com/u010086122/article/details/115286929</guid><author>u010086122</author><pubDate>Sun, 28 Mar 2021 21:43:20 +0800</pubDate><description><![CDATA[前言
博主最近在看《Vue.js实战》(梁灏著，2017年10月01日出版)，学习vue框架和webpack编译打包。在进行npm run build编译生产环境包时，出现了很多报错，特此记录采坑和解决方案
一. 问题背景
书中首先创建webpack.prod.config.js文件，如下
var webpack = require('webpack');
var HtmlwebpackPlugin = require('html-webpack-plugin');
var ExtractTextPlugi]]></description><category></category></item><item><title><![CDATA[webpack5.27+vue2.6.12版本处理css文件以及.vue文件的＜style＞css模块]]></title><link>https://blog.youkuaiyun.com/u010086122/article/details/115057270</link><guid>https://blog.youkuaiyun.com/u010086122/article/details/115057270</guid><author>u010086122</author><pubDate>Sat, 27 Mar 2021 14:18:29 +0800</pubDate><description><![CDATA[一. 问题背景
用如下命令加载依赖
cnpm install --save vue
cnpm install --save-dev vue-loader
cnpm install --save-dev vue-style-loader
cnpm install --save-dev vue-template-compiler

webpack中配置如下：
var path = require('path');

//用插件
const MiniCssExtractPlugin = require('mini]]></description><category></category></item><item><title><![CDATA[Webpack+babel 报错: Error:Cannot find module ‘@babel/core 解决办法]]></title><link>https://blog.youkuaiyun.com/u010086122/article/details/115057049</link><guid>https://blog.youkuaiyun.com/u010086122/article/details/115057049</guid><author>u010086122</author><pubDate>Sun, 21 Mar 2021 21:58:12 +0800</pubDate><description><![CDATA[一. 问题背景
通过cmd命令添加babel
cnpm install --save-dev babel
cnpm install --save-dev babel-loader
cnpm install --save-dev babel-core
cnpm install --save-dev babel-plugin-transform-runtime
cnpm install --save-dev babel-preset-es2015
cnpm install --save-dev babel-ru]]></description><category></category></item><item><title><![CDATA[extract-text-webpack-plugin：TypeError: Cannot set property ‘index‘ of undefined 解决办法]]></title><link>https://blog.youkuaiyun.com/u010086122/article/details/115056912</link><guid>https://blog.youkuaiyun.com/u010086122/article/details/115056912</guid><author>u010086122</author><pubDate>Sun, 21 Mar 2021 21:49:48 +0800</pubDate><description><![CDATA[一. 问题背景
cnpm install extract-text-webpack-plugin@next

在用如上命令安装extract-text-webpack-plugin插件时，会有日志如下：

可以看到提示说extract-text-webpack-plugin需要webpack3到4的版本，但是我webpack装的是5.27版本，因此可能会有问题。
果然在用npm run dev时，报错：

E:\WorkSpace\H5\vue\learn\webpack_demo\node_modules]]></description><category></category></item><item><title><![CDATA[Webpack: Cannot find module ‘webpack-cli/bin/config-yargs‘ Require  解决办法]]></title><link>https://blog.youkuaiyun.com/u010086122/article/details/115056734</link><guid>https://blog.youkuaiyun.com/u010086122/article/details/115056734</guid><author>u010086122</author><pubDate>Sun, 21 Mar 2021 21:43:59 +0800</pubDate><description><![CDATA[一. Cannot find module ‘webpack-cli/bin/config-yargs’ Require
使用webpack工具打包资源，启动程序
npm run dev

此时出现报错：

The CLI moved into a separate package: webpack-cli Please install
‘webpack-cli’ in addition to webpack itself to use the CLI
-&gt; When using npm: npm i]]></description><category></category></item><item><title><![CDATA[Python爬虫【四】爬取PC网页版“微博辟谣”账号内容(selenium多线程异步处理多页面)]]></title><link>https://blog.youkuaiyun.com/u010086122/article/details/114981525</link><guid>https://blog.youkuaiyun.com/u010086122/article/details/114981525</guid><author>u010086122</author><pubDate>Sat, 20 Mar 2021 16:51:21 +0800</pubDate><description><![CDATA[专题系列导引

前言
  前面专题文章【三】中，我们编写了微博PC网页版单页面内多线程爬取内容的爬虫方式。但执行速度仍然不太可观。因为翻页、下拉也是耗时高的操作，但为单线程执行。尤其是网路不理想的情形下，加载页面格外耗时。
  因此我们设想是否可以异步启动多个driver驱动，数量为n；同时将微博辟谣240页数据分割为n份的piece，每个driver驱动负责分析爬取一部分piece，最后再汇总，写入表格
  此文我们仍然是基于【二】【三】中的项目进行改造，让其实现selenium多线程异步处理多页面的功能]]></description><category></category></item><item><title><![CDATA[Python爬虫【三】爬取PC网页版“微博辟谣”账号内容(selenium单页面内多线程爬取内容)]]></title><link>https://blog.youkuaiyun.com/u010086122/article/details/114966538</link><guid>https://blog.youkuaiyun.com/u010086122/article/details/114966538</guid><author>u010086122</author><pubDate>Sat, 20 Mar 2021 16:50:35 +0800</pubDate><description><![CDATA[专题系列导引

前言
  前面专题文章【二】中，我们编写了微博PC网页版单线程的爬虫方式。但执行速度较慢，需要约两个小时才能处理完成。
  此文我们对之前的程序略作改造，让其实现在每个页面内爬取45条数据时，进行多线程异步爬取，从而缩短每个页面的爬取时间，进而缩短整个爬取时间。
一.改造多线程
  对于整个设计流程，之前CrawlHandle串行方法内的逻辑没有问题，仍然是执行五个步骤。前面的启动driver、登录认证，后面的关闭driver、写入数据，都没有变化。
1. 入参改造
  唯一需要变化的是步骤]]></description><category></category></item><item><title><![CDATA[Python爬虫【二】爬取PC网页版“微博辟谣”账号内容(selenium同步单线程)]]></title><link>https://blog.youkuaiyun.com/u010086122/article/details/114902317</link><guid>https://blog.youkuaiyun.com/u010086122/article/details/114902317</guid><author>u010086122</author><pubDate>Sat, 20 Mar 2021 16:49:35 +0800</pubDate><description><![CDATA[背景
笔者曾经遇到一个学习性质的爬虫任务：爬取‘微博辟谣’账号的历史微博。具体要求如下：
采集范围：
 1. ‘微博辟谣’账号原创或转发的历史全部贴子。
 2. 需要踢除微博月度工作报告。剔除的样例如下：
 
采集格式：
采集方框中的如下文本信息。分为4列。每行一条记录。
 1. 若为该账号原创帖，则采集账号本身、文本内容、发布时间、转发数。
 2. 若为转发的贴子，需要采集包含：原贴发布账号、原贴文本内容、原贴发布时间、原贴转发数。


原贴提取内容如下红框

转发贴提取内容：


一. 爬虫思路
首先分]]></description><category></category></item><item><title><![CDATA[Python爬虫【一】爬取移动版“微博辟谣”账号内容(API接口)]]></title><link>https://blog.youkuaiyun.com/u010086122/article/details/114997159</link><guid>https://blog.youkuaiyun.com/u010086122/article/details/114997159</guid><author>u010086122</author><pubDate>Sat, 20 Mar 2021 16:48:35 +0800</pubDate><description><![CDATA[专题系列导引

前言
  本文我们针对3G4G移动版微博网站（URL: https://m.weibo.cn），爬取"微博辟谣"的数据
一. 爬取思路
  首先分析P移动版微博的网站设计、Html页面结构、数据请求和加载方式。发现PC网页版特点如下：

页面时通过访问API接口，再渲染页面的方式来加载数据的。因此我们可以不管页面展示如何，而去直接调用API接口来提取数据
接口中通过page=?的方式来实现不同页面数据的提取；新版页面没有page参数，换用了since_id=?的入参，其实也是相同效果：每次A]]></description><category></category></item><item><title><![CDATA[Python爬虫【零】问题介绍 -- 对“微博辟谣”账号的历史微博进行数据采集]]></title><link>https://blog.youkuaiyun.com/u010086122/article/details/114957255</link><guid>https://blog.youkuaiyun.com/u010086122/article/details/114957255</guid><author>u010086122</author><pubDate>Sat, 20 Mar 2021 16:47:34 +0800</pubDate><description><![CDATA[问题
笔者曾经遇到一个学习性质的爬虫任务：爬取‘微博辟谣’账号的历史微博。具体要求如下：
采集范围：
 1. ‘微博辟谣’账号原创或转发的历史全部贴子。
 2. 需要踢除微博月度工作报告。剔除的样例如下：
 
采集格式：
采集方框中的如下文本信息。分为4列。每行一条记录。
 1. 若为该账号原创帖，则采集账号本身、文本内容、发布时间、转发数。
 2. 若为转发的贴子，需要采集包含：原贴发布账号、原贴文本内容、原贴发布时间、原贴转发数。


原贴提取内容如下红框

转发贴提取内容：



...]]></description><category></category></item></channel></rss>