<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[凡间的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/keep_sweet</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; keep_sweet]]></copyright><item><title><![CDATA[比较两个 JS 对象的内容是否相同（即使键的顺序不同，并且对象可能嵌套、包含数组或日期对象]]></title><link>https://blog.youkuaiyun.com/keep_sweet/article/details/144353280</link><guid>https://blog.youkuaiyun.com/keep_sweet/article/details/144353280</guid><author>keep_sweet</author><pubDate>Mon, 09 Dec 2024 17:17:57 +0800</pubDate><description><![CDATA[【代码】比较两个 JS 对象的内容是否相同（即使键的顺序不同，并且对象可能嵌套、包含数组或日期对象。]]></description><category></category></item><item><title><![CDATA[springboot之@ConfigurationProperties注解]]></title><link>https://blog.youkuaiyun.com/keep_sweet/article/details/126734802</link><guid>https://blog.youkuaiyun.com/keep_sweet/article/details/126734802</guid><author>keep_sweet</author><pubDate>Tue, 06 Sep 2022 22:46:09 +0800</pubDate><description><![CDATA[@ConfigurationProperties注解不仅可以用于自定义bean的属性绑定，还可以用于第三方bean的自动绑定。]]></description><category></category></item><item><title><![CDATA[Note9：Mysql]]></title><link>https://blog.youkuaiyun.com/keep_sweet/article/details/79749644</link><guid>https://blog.youkuaiyun.com/keep_sweet/article/details/79749644</guid><author>keep_sweet</author><pubDate>Tue, 06 Sep 2022 21:29:43 +0800</pubDate><description><![CDATA[一，数据库安装  ubuntu下安装:sudo apt-get install mysql-server mysql-client  启动：service mysql start  停止：service mysql stop  重启：service mysql restart  允许远程连接： 1. 找到mysql配置文件：sudo vi /etc/mysql/mysql....]]></description><category></category></item><item><title><![CDATA[Note11：python多进程]]></title><link>https://blog.youkuaiyun.com/keep_sweet/article/details/80087935</link><guid>https://blog.youkuaiyun.com/keep_sweet/article/details/80087935</guid><author>keep_sweet</author><pubDate>Fri, 27 Apr 2018 11:16:36 +0800</pubDate><description><![CDATA[一、多进程创建


from multiprocessing import Process


def fun(n):
    print('process task', n)

if __name__ == '__main__':
    for i in range(10):
        p = Process(target=fun, args=(i,))
        p.start(...]]></description><category></category></item><item><title><![CDATA[Note10：python多线程]]></title><link>https://blog.youkuaiyun.com/keep_sweet/article/details/80037837</link><guid>https://blog.youkuaiyun.com/keep_sweet/article/details/80037837</guid><author>keep_sweet</author><pubDate>Tue, 24 Apr 2018 21:19:12 +0800</pubDate><description><![CDATA[一、多线程的创建


import threading
import time


def say_hi(n):
    time.sleep(0.2)
    print('running on number', n)

if __name__ == &quot;__main__&quot;:
    start_time = time.time()
    for i in range(10):
        ...]]></description><category></category></item><item><title><![CDATA[用python编写一个web静态服务器]]></title><link>https://blog.youkuaiyun.com/keep_sweet/article/details/79858051</link><guid>https://blog.youkuaiyun.com/keep_sweet/article/details/79858051</guid><author>keep_sweet</author><pubDate>Sun, 08 Apr 2018 21:30:08 +0800</pubDate><description><![CDATA[import socket
import re
from multiprocessing import Process

HOME_DIR = '.\html'


class MyWeb(object):
    &quot;&quot;&quot;创建web类&quot;&quot;&quot;
    def __init__(self):
        &quot;&quot;&quot;创建server对象&quot;&quot;&quot;
        self.server = sock]]></description><category></category></item><item><title><![CDATA[Note8：数据结构，顺序表，链表，栈，队列]]></title><link>https://blog.youkuaiyun.com/keep_sweet/article/details/79586446</link><guid>https://blog.youkuaiyun.com/keep_sweet/article/details/79586446</guid><author>keep_sweet</author><pubDate>Fri, 16 Mar 2018 21:57:05 +0800</pubDate><description><![CDATA[一，数据结构    数据是一个抽象的概念，将其进行分类后得到程序设计语言中的基本类型。如：int，float，char等。数据元素之间不是独立的，存在特定的关系，这些关系便是结构。数据结构指数据对象中数据元素之间的关系。    Python给我们提供了很多现成的数据结构类型，这些系统自己定义好的，不需要我们自己去定义的数据结构叫做Python的内置数据结构，比如列表、元组、字典。而有些数据组织方式...]]></description><category></category></item><item><title><![CDATA[Note7：网络编程之Web动态服务器]]></title><link>https://blog.youkuaiyun.com/keep_sweet/article/details/79463614</link><guid>https://blog.youkuaiyun.com/keep_sweet/article/details/79463614</guid><author>keep_sweet</author><pubDate>Tue, 06 Mar 2018 22:02:16 +0800</pubDate><description><![CDATA[一，介绍    Web静态服务器的原理是浏览器发送一个请求给服务器，服务器接到请求后解析，然后返回一个响应报文给浏览器，浏览器通过渲染得到用户看到的页面。假如现在有一个要求，我们要求得到的页面是动态的，意思是不同时间可以访问到不同的页面内容。我们不可能时刻的去改写页面数据。这时如果让服务器返回给浏览器的数据是一个程序，那么程序自动执行，我们每次访问页面的时候，就可以得到的是不同的页面数据。即我们只...]]></description><category></category></item><item><title><![CDATA[Note6：网络编程之web静态服务器]]></title><link>https://blog.youkuaiyun.com/keep_sweet/article/details/79429108</link><guid>https://blog.youkuaiyun.com/keep_sweet/article/details/79429108</guid><author>keep_sweet</author><pubDate>Sat, 03 Mar 2018 13:02:10 +0800</pubDate><description><![CDATA[前言：    在之前，已经写过了很多服务器，如基于TCP和UDP的socket服务器，也知道了浏览一个百度首页的具体过程，现在，我们只要清楚HTTP协议，就可以构造一个HTTP请求，向服务器发送数据；也可以构造一个响应报文，就可以发送数据给客户端。还记得之前写过一个TFTP的客户端，我们只要构造一基于TFTP协议的数据报，就可以完成与服务器的交互。TFTP客户端链接：http://blog.csd...]]></description><category></category></item><item><title><![CDATA[Note5：网络编程之并发服务器（select,epoll,协程）]]></title><link>https://blog.youkuaiyun.com/keep_sweet/article/details/79399106</link><guid>https://blog.youkuaiyun.com/keep_sweet/article/details/79399106</guid><author>keep_sweet</author><pubDate>Wed, 28 Feb 2018 13:27:02 +0800</pubDate><description><![CDATA[一，单进程服务器，非阻塞模式实现并发：    windows下：import socket

serverSocket = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
serverSocket.bind(('',8899))
serverSocket.listen(10)
serverSocket.setblocking(False)#设置se...]]></description><category></category></item><item><title><![CDATA[Note4：网络编程之网络通信过程]]></title><link>https://blog.youkuaiyun.com/keep_sweet/article/details/79375959</link><guid>https://blog.youkuaiyun.com/keep_sweet/article/details/79375959</guid><author>keep_sweet</author><pubDate>Mon, 26 Feb 2018 19:00:24 +0800</pubDate><description><![CDATA[一，两台电脑之间的通信    两台电脑想完成通信，用网线连接两台电脑，再配置两台电脑的ip地址在同一个网段内就可以了。二，通过hub实现三台电脑之间的通信    三台电脑想要通信可以通过集线器来通信，但也只是在一个局域网内。如图：               那通过集线器连接有什么特点呢？    每个数据包的发送都是以广播的形式进行的，容易阻塞网络。    现在我们用PC0来ping一下PC2，里...]]></description><category></category></item><item><title><![CDATA[Note3：TCP编程]]></title><link>https://blog.youkuaiyun.com/keep_sweet/article/details/79365494</link><guid>https://blog.youkuaiyun.com/keep_sweet/article/details/79365494</guid><author>keep_sweet</author><pubDate>Sat, 24 Feb 2018 22:57:17 +0800</pubDate><description><![CDATA[一，TCP通信模型                                    TCP服务端：    1.调用socket()：建立socket套接字，此建立的socket是主动套接字。默认是用于主动发送请求的sokcet。后面需要变为被动套接字，即用于接收数据。    2.调用bind()函数：邦定服务端和其他一样，若想要接收到数据，必须邦定一个ip和port。这样客户端才能准确发送到...]]></description><category></category></item><item><title><![CDATA[Note2：UDP编程之写一个TFTP客户端]]></title><link>https://blog.youkuaiyun.com/keep_sweet/article/details/79365042</link><guid>https://blog.youkuaiyun.com/keep_sweet/article/details/79365042</guid><author>keep_sweet</author><pubDate>Sat, 24 Feb 2018 20:42:29 +0800</pubDate><description><![CDATA[一，TFTP协议介绍    TFTP（Trivial File Transfer Protocol,简单文件传输协议）是TCP/IP协议族中的一个用来在客户端与服务器之间进行简单文件传输的协议    特点：简单，            占用资源少            适合传递小文件            适合在局域网进行传递            端口号为69            基于UDP实...]]></description><category></category></item><item><title><![CDATA[Note1：网络编程概述，UDP编程]]></title><link>https://blog.youkuaiyun.com/keep_sweet/article/details/79344693</link><guid>https://blog.youkuaiyun.com/keep_sweet/article/details/79344693</guid><author>keep_sweet</author><pubDate>Wed, 21 Feb 2018 23:00:04 +0800</pubDate><description><![CDATA[一，什么是网络编程？    所谓的网络编程就是，让在不同的电脑上的软件能够进行数据传递，即进程之间的通信        二，TCP/IP协议简介    为了把全世界的所有不同类型的计算机都连接起来，就必须规定一套全球通用的协议，为了实现互联网这个目标，互联网协议簇（InternetProtocolSuite）就是通用协议标准。因为互联网协议包含了上百种协议标准，但是最重要的两个协议是TCP和IP协...]]></description><category></category></item><item><title><![CDATA[RabbitMQ介绍]]></title><link>https://blog.youkuaiyun.com/keep_sweet/article/details/79331288</link><guid>https://blog.youkuaiyun.com/keep_sweet/article/details/79331288</guid><author>keep_sweet</author><pubDate>Fri, 16 Feb 2018 23:27:09 +0800</pubDate><description><![CDATA[一，RabbitMQ功能：    RabbitMQ就是消息队列，当两个进程需要进行通信的时候，RabbitMQ为一个代理服务器，其中一个进程先将消息发送给服务器，然后服务器再发送给另一个服务器，这样就实现两个不同的进程之间的通信了。RabbitMQ是一个消息代理：它接受和转发消息。你可以把它想象成一个邮局：当你把你想要发布的邮件放在邮箱中时，你可以确定邮差先生最终将邮件发送给你的收件人。在这个比喻...]]></description><category></category></item><item><title><![CDATA[百度贴吧搜索关键字爬取图片批量下载]]></title><link>https://blog.youkuaiyun.com/keep_sweet/article/details/79307008</link><guid>https://blog.youkuaiyun.com/keep_sweet/article/details/79307008</guid><author>keep_sweet</author><pubDate>Sat, 10 Feb 2018 21:24:23 +0800</pubDate><description><![CDATA[百度贴吧搜索关键字爬取图片批量下载：思路流程图：import urllib.request
from urllib import parse
import re
from lxml import etree
import threading

class PostBar(object):
    def __init__(self):
        self.ua_headers = {
   ...]]></description><category></category></item><item><title><![CDATA[百度贴吧网页批量爬取]]></title><link>https://blog.youkuaiyun.com/keep_sweet/article/details/79258181</link><guid>https://blog.youkuaiyun.com/keep_sweet/article/details/79258181</guid><author>keep_sweet</author><pubDate>Mon, 05 Feb 2018 11:32:15 +0800</pubDate><description><![CDATA[简单python爬虫应用]]></description><category></category></item></channel></rss>