<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[sunbo_csdn的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/sunbo_csdn</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; sunbo_csdn]]></copyright><item><title><![CDATA[SQL 触发器与WebApi回执]]></title><link>https://blog.youkuaiyun.com/sunbo_csdn/article/details/82718721</link><guid>https://blog.youkuaiyun.com/sunbo_csdn/article/details/82718721</guid><author>sunbo_csdn</author><pubDate>Sat, 15 Sep 2018 22:47:18 +0800</pubDate><description><![CDATA[1.需求数据库表添加，修改，删除数据，触发器生效，推送数据数据到WCF接口

2.可行方案2种，第一种创建数据库项目形式

a)创建WCF服务，发布服务

b)启用数据库CLR功能，默认是关闭状态



EXEC sp_configure 'show advanced options' , '1';
go
reconfigure;
go
EXEC sp_configure 'clr enabled...]]></description><category></category></item><item><title><![CDATA[数据库分区、分表、分库，读写分离]]></title><link>https://blog.youkuaiyun.com/sunbo_csdn/article/details/82504145</link><guid>https://blog.youkuaiyun.com/sunbo_csdn/article/details/82504145</guid><author>sunbo_csdn</author><pubDate>Sat, 08 Sep 2018 00:10:46 +0800</pubDate><description><![CDATA[1.数据存储的演变 
①.单库单表 
单库单表是最常见的数据库设计，例如，有一张用户(user)表放在数据库db中，所有的用户都可以在db库中的user表中查到。 
②.单库多表 
随着用户数量的增加，user表的数据量会越来越大，当数据量达到一定程度的时候对user表的查询会渐渐的变慢，从而影响整个DB的性能。如果使用mysql, 还有一个更严重的问题是，当需要添加一列的时候，mysql会锁表，...]]></description><category></category></item><item><title><![CDATA[WebSocket聊天室Demo]]></title><link>https://blog.youkuaiyun.com/sunbo_csdn/article/details/82503632</link><guid>https://blog.youkuaiyun.com/sunbo_csdn/article/details/82503632</guid><author>sunbo_csdn</author><pubDate>Fri, 07 Sep 2018 22:46:59 +0800</pubDate><description><![CDATA[1.WebSocket定义 
WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。

2.与Http协议区别 
HTTP：超文本传输协议，首先它是一个协议，并且是基于TCP/IP协议基础之上的应用层协议。TCP/IP协议是传输层协议，主要解决数据如何在网络中传输，HTTP是应用层协议，主要解决如何包装数...]]></description><category></category></item><item><title><![CDATA[关系型数据库篇（MSSQL）]]></title><link>https://blog.youkuaiyun.com/sunbo_csdn/article/details/82468383</link><guid>https://blog.youkuaiyun.com/sunbo_csdn/article/details/82468383</guid><author>sunbo_csdn</author><pubDate>Thu, 06 Sep 2018 22:18:01 +0800</pubDate><description><![CDATA[1.前言 
常用的数据库端使用总结下：数据库表设计规范，索引，SQL优化，系统表查询 
1.设计数据库表遵循三范式 
a)第一范式：确保每列保持原子性 
b)第二范式：确保表中的每列都和主键相关 
c)第三范式：确保每列都和主键列直接相关,而不是间接相关

2.索引定义 
﻿﻿唯一索引：唯一索引不允许两行具有相同的索引值，一个表可以设置多个唯一索引 
﻿﻿聚集索引:表中各行的物理顺序与键值的逻辑（...]]></description><category></category></item><item><title><![CDATA[Python常见查找算法]]></title><link>https://blog.youkuaiyun.com/sunbo_csdn/article/details/82317878</link><guid>https://blog.youkuaiyun.com/sunbo_csdn/article/details/82317878</guid><author>sunbo_csdn</author><pubDate>Sun, 02 Sep 2018 18:50:28 +0800</pubDate><description><![CDATA[1.关键字定义 
    查找（Searching）就是根据给定的某个值，在查找表中确定一个其关键字等于给定值的数据元素。 
    查找表（Search Table）：由同一类型的数据元素构成的集合 
    关键字（Key）：数据元素中某个数据项的值，又称为键值 
   主键（Primary Key）：可唯一的标识某个数据元素或记录的关键字

2.查找表按照操作方式可分为： 
 ①静态查找表 ...]]></description><category></category></item><item><title><![CDATA[PC客户端数据分析工具Fiddler+Proxifer]]></title><link>https://blog.youkuaiyun.com/sunbo_csdn/article/details/82292379</link><guid>https://blog.youkuaiyun.com/sunbo_csdn/article/details/82292379</guid><author>sunbo_csdn</author><pubDate>Sun, 02 Sep 2018 01:56:29 +0800</pubDate><description><![CDATA[开篇：要想实现写爬虫，抓取到数据，首先我们应该分析客户端和服务器的请求/响应，前提就是我们能监控到客户端是如何与服务器交互的，下面来记录下常见的三种情况下的抓包方法 
1.PC端浏览器网页抓包 
网页板抓包是最简单和常见的，比如Google/Firfox/IE等浏览器自带的开发者调试工具（F12）就可以满足一部分需求，如果在请求前和响应后最些处理，比如修改浏览器发出的请求数据和修改服务器相应的数据...]]></description><category></category></item><item><title><![CDATA[Python实现常见排序算法速度比较]]></title><link>https://blog.youkuaiyun.com/sunbo_csdn/article/details/82263177</link><guid>https://blog.youkuaiyun.com/sunbo_csdn/article/details/82263177</guid><author>sunbo_csdn</author><pubDate>Fri, 31 Aug 2018 23:04:45 +0800</pubDate><description><![CDATA[1.排序是计算机语言需要实现的基本算法之一，有序的数据结构会带来效率上的极大提升。 
 
下面分类列举下常见排序算法： 
①冒泡排序 
冒泡排序的原理是对序列进行遍历，遍历过程中如果发现相邻两个元素，左边的元素大于右边，则进行交换，一次遍历之后最大的元素被移动到对尾，然后进行第二次遍历，直到队列有序。

#冒泡排序
def bubble_sort(list):
    l = len(list)
...]]></description><category></category></item><item><title><![CDATA[Selenium+PlantomJs模拟登陆]]></title><link>https://blog.youkuaiyun.com/sunbo_csdn/article/details/82220387</link><guid>https://blog.youkuaiyun.com/sunbo_csdn/article/details/82220387</guid><author>sunbo_csdn</author><pubDate>Thu, 30 Aug 2018 18:29:34 +0800</pubDate><description><![CDATA[1.python抓取网页的过程中，有很多网页都是需要登陆后才可以进行信息采集，分析页面链接有的时候太费时间，因此引入了Selenium+PlantomJs实现模拟登陆，简单，方便实现登陆拿到cookies 
2.实现思路分析 
a)访问淘宝登陆页面 
https://login.taobao.com/member/login.jhtml 
b)输入用户名，密码 
c)登陆成功，cookies持久化...]]></description><category></category></item><item><title><![CDATA[Selenium WebDerver API]]></title><link>https://blog.youkuaiyun.com/sunbo_csdn/article/details/82220489</link><guid>https://blog.youkuaiyun.com/sunbo_csdn/article/details/82220489</guid><author>sunbo_csdn</author><pubDate>Thu, 30 Aug 2018 14:11:22 +0800</pubDate><description><![CDATA[1.浏览器操作 
刷新 
driver.refresh() 
 前进 
driver.forward() 
 后退 
driver.back()

2.获取标签元素 
通过ID定位目标元素 
driver.find_element_by_id(‘i1’) 
 通过className定位目标元素 
driver.find_element_by_class_name(‘c1’) 
 通过name属性定...]]></description><category></category></item><item><title><![CDATA[Scrapy框架微博头条更新]]></title><link>https://blog.youkuaiyun.com/sunbo_csdn/article/details/82179908</link><guid>https://blog.youkuaiyun.com/sunbo_csdn/article/details/82179908</guid><author>sunbo_csdn</author><pubDate>Wed, 29 Aug 2018 22:29:13 +0800</pubDate><description><![CDATA[1.自定义需求 
a)当前更新的微博头条内容，发送邮件通知 
1.分析页面 
a)访问微博主页：https://weibo.com/，记录cookies 
b)登陆链接请求 
https://login.sina.com.cn/sso/login.php 
c)访问头条链接 
https://d.weibo.com/623751_1 
3.实现思路 
a)微博模拟登陆，保存cookie信息 
b)...]]></description><category></category></item><item><title><![CDATA[Scrapy框架整合英雄缩略图（APP）]]></title><link>https://blog.youkuaiyun.com/sunbo_csdn/article/details/82152739</link><guid>https://blog.youkuaiyun.com/sunbo_csdn/article/details/82152739</guid><author>sunbo_csdn</author><pubDate>Tue, 28 Aug 2018 22:37:40 +0800</pubDate><description><![CDATA[1.自定义需求 
英雄联盟的英雄皮肤，手机app查看太麻烦，一个个翻，看起来不够直观，想要实现按英雄名称文件夹命名，分类保存在本地，英雄的数据信息保存在数据库中，需求很简单吧！ 
2.需求分析 
a)根据英雄名称创建文件夹 
b)根据英雄所有皮肤图片链接保存图片 
c)英雄的属性信息保存MongoDb 
3.实现思路 
a)用到技术点：Fiddler抓包工具+Python语言+Scrapy框架+M...]]></description><category></category></item><item><title><![CDATA[Redis常用命令]]></title><link>https://blog.youkuaiyun.com/sunbo_csdn/article/details/82145818</link><guid>https://blog.youkuaiyun.com/sunbo_csdn/article/details/82145818</guid><author>sunbo_csdn</author><pubDate>Tue, 28 Aug 2018 12:07:23 +0800</pubDate><description><![CDATA[返回主页 
kevinws 
代码改变世界 
博客园 
首页 
联系 
管理 
Redis常用命令整理 
doc 环境下使用命令：

keys 命令
    ?    匹配一个字符
    *    匹配任意个（包括0个）字符
    []    匹配括号间的任一个字符，可以使用 &quot;-&quot; 符号表示一个范围，如 a[b-d] 可以匹配 &quot;ab&quot;,&quot;ac&quot;,&quot;ad&quot;
    \x    匹配字符x，用...]]></description><category></category></item><item><title><![CDATA[Scrapy常用的命令]]></title><link>https://blog.youkuaiyun.com/sunbo_csdn/article/details/82117275</link><guid>https://blog.youkuaiyun.com/sunbo_csdn/article/details/82117275</guid><author>sunbo_csdn</author><pubDate>Mon, 27 Aug 2018 18:30:44 +0800</pubDate><description><![CDATA[1.查看帮助命令 
scrapy -h 
scrapy –help

2.查看版本信息 
scrapy version 
scrapy version -v

3.全局命令和项目命令文档截图 


4.全局命令

a)创建项目（startproject） 
scrapy startproject testproject 


b)创建蜘蛛，默认模板basic，一个项目可以创建多个蜘蛛(genspi...]]></description><category></category></item><item><title><![CDATA[Scrapy基础知识]]></title><link>https://blog.youkuaiyun.com/sunbo_csdn/article/details/82116413</link><guid>https://blog.youkuaiyun.com/sunbo_csdn/article/details/82116413</guid><author>sunbo_csdn</author><pubDate>Mon, 27 Aug 2018 17:31:42 +0800</pubDate><description><![CDATA[1.定义 
Scrapy是Python开发的一个快速、高层次的屏幕抓取和web抓取框架，用于抓取web站点并从页面中提取结构化的数据。Scrapy用途广泛，可以用于数据挖掘、监测和自动化测试。 
2.执行流程图 
 
3.组件简单理解 
a).Scrapy Engine(引擎) 
Scrapy引擎负责整个框架的数据处理流程，并进行事务的出发，也就是什么时候触发什么事件，由它来进行分配调用。 
b)...]]></description><category></category></item><item><title><![CDATA[virtualenv基本使用]]></title><link>https://blog.youkuaiyun.com/sunbo_csdn/article/details/82010675</link><guid>https://blog.youkuaiyun.com/sunbo_csdn/article/details/82010675</guid><author>sunbo_csdn</author><pubDate>Fri, 24 Aug 2018 07:38:52 +0800</pubDate><description><![CDATA[1.实际开发过程中，有的项目用python2.7的，有的项目用python3.6的，安装的不同的第三方库也有不同版本的区别，为了解决各种库和版本之间的干扰，我们引入了virtualenv，虚拟沙箱这个概念。

2.沙箱作用 
在本地会创建一个环境，与这个环境外，系统内部环境互不干扰，可以为每一个项目创建一个单独沙箱，降低项目被其他项目污染

3.安装 
pip install virtualenv...]]></description><category></category></item><item><title><![CDATA[Redis安装配置环境变量]]></title><link>https://blog.youkuaiyun.com/sunbo_csdn/article/details/82010722</link><guid>https://blog.youkuaiyun.com/sunbo_csdn/article/details/82010722</guid><author>sunbo_csdn</author><pubDate>Fri, 24 Aug 2018 07:11:28 +0800</pubDate><description><![CDATA[1.获取redis源 
wget http://download.redis.io/releases/redis-4.0.8.tar.gz 
2.解压文件 
tar xzvf redis-4.0.8.tar.gz 
3.安装 
cd redis-4.0.8 
make 
cd src 
make install PREFIX=/usr/local/redis 
4.复制配置文件到指定目录 
cd ...]]></description><category></category></item><item><title><![CDATA[MongoDb常用命令]]></title><link>https://blog.youkuaiyun.com/sunbo_csdn/article/details/81978090</link><guid>https://blog.youkuaiyun.com/sunbo_csdn/article/details/81978090</guid><author>sunbo_csdn</author><pubDate>Thu, 23 Aug 2018 11:37:41 +0800</pubDate><description><![CDATA[A.库操作 
切换或使用数据库    use mymongodb 
看所有的库   show dbs 
删除当前使用数据库   db.dropDatabase() 
克隆所有的库到当前连接 db.cloneDatabase(“192.160.1.1”) 
复制指定的库  db.cloneDatabase(“sourcedb”,”targetdb”,”192.168.1.1”) 
查看当前数据库 d...]]></description><category></category></item><item><title><![CDATA[MongoDb基本命令]]></title><link>https://blog.youkuaiyun.com/sunbo_csdn/article/details/81973855</link><guid>https://blog.youkuaiyun.com/sunbo_csdn/article/details/81973855</guid><author>sunbo_csdn</author><pubDate>Thu, 23 Aug 2018 11:27:55 +0800</pubDate><description><![CDATA[1.启动服务（shell窗口保留） 
mongod

2.连接服务 
mongo

3.创建数据库 
use jddb 
db.jddb.insert({‘name’:’test’})

4.删除数据库（本地文件也删除） 
db.dropDatabase()

5.查看数据库列表 
show dbs...]]></description><category></category></item><item><title><![CDATA[MongoDb安装教程]]></title><link>https://blog.youkuaiyun.com/sunbo_csdn/article/details/81973847</link><guid>https://blog.youkuaiyun.com/sunbo_csdn/article/details/81973847</guid><author>sunbo_csdn</author><pubDate>Thu, 23 Aug 2018 06:40:58 +0800</pubDate><description><![CDATA[1.下载安装包 
-O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz  
2.解压 
tar -zxvf mongodb-linux-x86_64-3.0.6.tgz  
3.解压包移动到指定目录 
mv  mongodb-linux-x86_64-3.0.6/ /usr/local/mongodb 
4.添加环境变...]]></description><category></category></item><item><title><![CDATA[Python模拟登陆]]></title><link>https://blog.youkuaiyun.com/sunbo_csdn/article/details/81659884</link><guid>https://blog.youkuaiyun.com/sunbo_csdn/article/details/81659884</guid><author>sunbo_csdn</author><pubDate>Tue, 14 Aug 2018 05:04:10 +0800</pubDate><description><![CDATA[1.功能 
豆瓣网的模拟登陆(有验证码的情况) 
2.工具 
Fiddler抓包工具+Google Chrome开发工具（F12）+Sublime Text 
3.跳转分析 
a)访问豆瓣网https://www.douban.com/，获取cookies 
b)通过持久化cookies获取图片验证码token，通过RequestsCookieJar记录cookies，没有使用requests.S...]]></description><category></category></item></channel></rss>