<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[superliminal的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/superliminal</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; superliminal]]></copyright><item><title><![CDATA[Python多进程的简单介绍]]></title><link>https://blog.youkuaiyun.com/superliminal/article/details/107205570</link><guid>https://blog.youkuaiyun.com/superliminal/article/details/107205570</guid><author>superliminal</author><pubDate>Wed, 08 Jul 2020 16:30:38 +0800</pubDate><description><![CDATA[线程与进程的区别

根本区别：

进程：操作系统资源分配的基本单位
线程：任务调度和执行的基本单位


开销：

进程：通过复制代码 + 资源创建子进程   每个子进程都有独立的代码和数据 空间，进程间切换需要有较大的开销
线程：在同一份代码里，创建线程，共享资源，开销较小


分配内存：

进程：系统在运行的时候为每个进程分配好不同的内存空间
线程：线程所使用的资源是它所属的进程资源


包含关系：
进程：一个进程需要有多个线程
线程：线程是进程的一部分




进程的介绍

进程的组成：

程序
数据集]]></description><category></category></item><item><title><![CDATA[Python线程的简单介绍]]></title><link>https://blog.youkuaiyun.com/superliminal/article/details/107134315</link><guid>https://blog.youkuaiyun.com/superliminal/article/details/107134315</guid><author>superliminal</author><pubDate>Sun, 05 Jul 2020 14:05:40 +0800</pubDate><description><![CDATA[多任务

说起线程多多少少会和多任务挂钩，什么是多任务呢？
多任务其实就是在同一时间同时做很多件事情

并发：CPU 小于当前执行的任务，是假的多任务
并行：CPU  大于当前执行的任务，是真的多任务


多任务实现的几种方式:

线程
进程
协程



线程

线程，也被称为轻量进程，是处理器能够进行运算调度的最小单位，是进程内的一个执行单元，是进程的实际运作单位。
多线程类似于执行多个同时执行多个不同的程序，有以下的优点：

使用线程可以把占据长时间的程序中的任务放到后台去处理
程序运行速度加快
在一些]]></description><category></category></item><item><title><![CDATA[类与对象的深入— 上篇]]></title><link>https://blog.youkuaiyun.com/superliminal/article/details/106787771</link><guid>https://blog.youkuaiyun.com/superliminal/article/details/106787771</guid><author>superliminal</author><pubDate>Tue, 16 Jun 2020 18:24:34 +0800</pubDate><description><![CDATA[1. 鸭子类型和多态
鸭子类型

鸭子类型是动态类型的一种风格，不是由继承特定的类或者实现特定的接口，而是当前的方法和属性的集合所决定的。
鸭子类型关注的不是对象的类型本身，而是它如何使用
动态语言调用实例方法时不检查类型，只要方法存在，参数正确，就可以调用。这就是动态语言的“鸭子类型”，它并不要求严格的继承体系，一个对象只要“看起来像鸭子，走起路来像鸭子”，那它就可以被看做是鸭子。
在一下代码中的animal_l 列表中，Cat、Dog和Duck都是变量，而只有在调用的同时给类对象加上() 才能够调用 类]]></description><category></category></item><item><title><![CDATA[selenium 在爬虫中的简单使用]]></title><link>https://blog.youkuaiyun.com/superliminal/article/details/106552045</link><guid>https://blog.youkuaiyun.com/superliminal/article/details/106552045</guid><author>superliminal</author><pubDate>Thu, 04 Jun 2020 18:06:12 +0800</pubDate><description><![CDATA[1. selenium 的简介

selenium 最开始是 web 的自动化测试工具，最开始网站自动化测试开发的，selenium 可以直接运行在浏览器上，它支持所有的主流浏览器，可以接受指令让浏览器自动加载界面，获取需要的数据，甚至还可以截屏。
Chromedriver  是一个驱动chrome 浏览器的驱动程序，使用它才可以驱动浏览器。当然，针对不同的浏览器有不同的版本的 driver。

Firefox：https://github.com/mozilla/geckodriver/releases
]]></description><category></category></item><item><title><![CDATA[Python的文件操作（I/O）]]></title><link>https://blog.youkuaiyun.com/superliminal/article/details/106355424</link><guid>https://blog.youkuaiyun.com/superliminal/article/details/106355424</guid><author>superliminal</author><pubDate>Tue, 26 May 2020 18:07:58 +0800</pubDate><description><![CDATA[1. 文件的打开

文件（file）通过Python程序来对计算机中的各种程序进行增删改查的操作，文件也叫做 I/O（Input/Output）
文件的打开的操作步骤

打开文件
对文件进行修改、保存的操作
关闭文件


文件会有一个返回值。返回一个对象，返回的这个对象就是当前文件的本身。
open（）函数

在 Python 中，如果想要操作文件，首先需要创建或者打开指定的文件，并创建一个文件对象，而这些工作可以通过内置的 open() 函数实现。
open（） 用于创建和打开指定文件
语法：file_o]]></description><category></category></item><item><title><![CDATA[Windows下构建Python环境]]></title><link>https://blog.youkuaiyun.com/superliminal/article/details/106250426</link><guid>https://blog.youkuaiyun.com/superliminal/article/details/106250426</guid><author>superliminal</author><pubDate>Thu, 21 May 2020 12:56:17 +0800</pubDate><description><![CDATA[1. Windows下安装Anaconda
国内清华镜像
1.双击Anaconda3-5.1.0-Windows64位的安装包

2.点击下一步

3. 点击我同意

4. 点击下一步

Just Me针对本机当前用户进行安装。（推荐使用）
所有用户指向本机所有用户，这些用户必须具有管理员权限。
如果选择了这个选项，在使用普通用户进行操作时，就会出现没有权限的提示，然后使用管理员权限重新执行。



通常选择默认路径，也可以更改路径


6.添加Anaconda到我的PATH环境中，点击第一个后，第一个会变]]></description><category></category></item><item><title><![CDATA[浅析Python爬虫之bs4库]]></title><link>https://blog.youkuaiyun.com/superliminal/article/details/106228360</link><guid>https://blog.youkuaiyun.com/superliminal/article/details/106228360</guid><author>superliminal</author><pubDate>Wed, 20 May 2020 14:46:07 +0800</pubDate><description><![CDATA[1.bs4库的简介
bs4的概念

Beautiful Soup 是一个可以从 html 和 xml 中提取网页信息的库

bs4 的安装

pip install lxml
pip install bs4
安装 bs4 之前一定要先安装 lxml

2. bs4 的使用
2.1 bs4的快速入手
html_doc = """
&lt;html&gt;&lt;head&gt;&lt;title&gt;The Dormouse's story&lt;/title&gt;&lt;/head&gt;
&lt;bo]]></description><category></category></item><item><title><![CDATA[浅析Python中的异常处理]]></title><link>https://blog.youkuaiyun.com/superliminal/article/details/106219003</link><guid>https://blog.youkuaiyun.com/superliminal/article/details/106219003</guid><author>superliminal</author><pubDate>Tue, 19 May 2020 18:02:39 +0800</pubDate><description><![CDATA[1. 异常的简介

在调式程序时不可避免的会出现一些异常，这些异常的原因一方面可能是写程序时的疏忽或者考虑不全所导致的错误，这就需要根据异常Trackbcak到出错点，进行分析改正。另一方面，有些异常是不可避免的，我们可以对异常进行捕捉，防止程序的终止。

2. 异常捕获

当发生异常的时候，我们需要对异常进行捕捉，然后进行相应的处理。Python中的异常捕获常用 try…except…  结构，把可能发生的错误放到模块里面，用except来处理异常，每一个  try 至少对应一个 except 。与Pyt]]></description><category></category></item><item><title><![CDATA[模块的简明概要]]></title><link>https://blog.youkuaiyun.com/superliminal/article/details/106170413</link><guid>https://blog.youkuaiyun.com/superliminal/article/details/106170413</guid><author>superliminal</author><pubDate>Sun, 17 May 2020 11:26:30 +0800</pubDate><description><![CDATA[1. 模块

Python程序由包（package）、模块（module）和函数构成
模块化是指将一个个完成的程序分解为一个一个的小模块
将这些模块组合，构建完整的程序
模块是处理某一类问题的函数和类的集合，由代码、函数和类组成。函数是一段可以重复多次调用的代码。模块是把一组相关的函数或代码组织到一个文件中，一个文件即是一个模块。每个模块都是一个独立完备的命名空间，一个模块文件不能看到其他文件定义的变量名，除非它明确地导入了那个文件，模块文件起到了最小化命名冲突 的作用。
模块化的优点：

方便开发
方便维]]></description><category></category></item><item><title><![CDATA[XPath和XML简介]]></title><link>https://blog.youkuaiyun.com/superliminal/article/details/106135616</link><guid>https://blog.youkuaiyun.com/superliminal/article/details/106135616</guid><author>superliminal</author><pubDate>Fri, 15 May 2020 14:18:07 +0800</pubDate><description><![CDATA[1. XPATH简介
1.1 XPATH的作用：

XPATH是一门在XML文档中查找信息的语言。XPATH可以用来在XML文档中对元素和属性进行遍历
XML是一种标记语法的文本格式，xpath可以方便的定位xml中的元素和其中的属性值。
lxml是Python的一个包，这个包中包含了将html文本转成xml对象，和对对象执行xpath功能

1.2 节点的关系
xml_content = '''
&lt;bookstore&gt;
&lt;book&gt;
    &lt;title lang='eng']]></description><category></category></item><item><title><![CDATA[正则表达式的简明概要]]></title><link>https://blog.youkuaiyun.com/superliminal/article/details/106099640</link><guid>https://blog.youkuaiyun.com/superliminal/article/details/106099640</guid><author>superliminal</author><pubDate>Wed, 13 May 2020 19:06:11 +0800</pubDate><description><![CDATA[1. 正则表达式的简介
1.1 正则表达式的概念

正则表达式并不是Python的一部分，正则表达式是用来处理字符串的强大工具，拥有自己独特的语法以及一个独立的搜索引擎，效率上可能不如str自带的方法，但是功能十分强大

1.2 正则表达式的匹配过程

依次拿出表达式和文本中的字符比较，如果每一字符都能匹配，则匹配成功。一旦有匹配不成功的字符，则匹配失败。如果表达式中有量词或边界，这个过程会稍微有些不同。

1.3 正则表达式的应用场景

表单验证（例如身份证、手机号、邮箱等等）
爬虫

2. 正则表达式对]]></description><category></category></item><item><title><![CDATA[面向对象（终极篇 ）]]></title><link>https://blog.youkuaiyun.com/superliminal/article/details/106036698</link><guid>https://blog.youkuaiyun.com/superliminal/article/details/106036698</guid><author>superliminal</author><pubDate>Mon, 11 May 2020 09:56:59 +0800</pubDate><description><![CDATA[1. 继承简介

继承是面向对象的三大特性之一
在定义类 时 我们可以在类的 括号里面指定 当前的父类
继承的特性：

继承提高了代码的复用性
继承使类与类之间产生了关系。 有了关系，才有了多态的特性



2. 方法重写

如果子类和父类有同名的方法。则通过子类实例去调用方法时，会调用子类的方法，而不是父类的方法，此过程我们称之为方法的重写（覆盖）
当我们调用一个对象时：
会优先去当前对象的父类中寻找，如果有，则调用。
如果没有，则会去父类的父类中寻找，如果有，则调用
如果没有，以此类推，直到找到 obj]]></description><category></category></item><item><title><![CDATA[爬虫的简单介绍]]></title><link>https://blog.youkuaiyun.com/superliminal/article/details/106019149</link><guid>https://blog.youkuaiyun.com/superliminal/article/details/106019149</guid><author>superliminal</author><pubDate>Sat, 09 May 2020 16:55:09 +0800</pubDate><description><![CDATA[1.通讯协议
1.1 端口
端口分为两种

物理上的端口 ：ADSL Modem、集线器、交换机、路由器用 于连接其他网络设备的接口，如RJ-45端口、SC端口等等
逻辑上的端口：TCP/IP协议中的端口，端口号的范围从0到65535。用于识别特殊服务，如浏览网页服务的80端口，用于FTP服务的21端口

1.2 通讯协议

国际组织定义的通用通讯协议为TCP/IP 协议
所谓协议：就是计算机网络通信过程中所必须遵守的规定和规则
HTTP 又叫做超文本传输协议 ，它的端口号是80

2. 网络模型


2.]]></description><category></category></item><item><title><![CDATA[浅析爬虫请求模块]]></title><link>https://blog.youkuaiyun.com/superliminal/article/details/105835150</link><guid>https://blog.youkuaiyun.com/superliminal/article/details/105835150</guid><author>superliminal</author><pubDate>Sat, 02 May 2020 21:13:27 +0800</pubDate><description><![CDATA[1.urllib.request模块
1.1版本

Python2：urllib2 、 urllib
Python3：将urllib2 和urllib合并成 urllib.request

1.2常用方法

urllib.request.urlopen（“网址”） 作用：向网站发送一个请求并获取响应
读取相应对象的内容

字节流：response.read（）  —&gt; 容易产生乱码
字符串：...]]></description><category></category></item><item><title><![CDATA[面向对象（初级篇）]]></title><link>https://blog.youkuaiyun.com/superliminal/article/details/105863745</link><guid>https://blog.youkuaiyun.com/superliminal/article/details/105863745</guid><author>superliminal</author><pubDate>Thu, 30 Apr 2020 18:04:28 +0800</pubDate><description><![CDATA[1.面向对象简介

Python是一门面向对象的编程语言，在Python中所有数据类型都被视为对象
所谓面向对象的语言 ，简单来说就是语言中的所有操作都是通过对象来进行的，对函数进行分类和封装，让开发更快，更好，更强…
面向对象的基本哲学：

世界由具有各自运动规律和内部状态的对象组成，对象之间的相互作用和通讯构成了世界
唯一性：世界上没有两片相同的叶子，也没有两个相同的对象
分类性：分类是对现实...]]></description><category></category></item><item><title><![CDATA[万能的函数（三）]]></title><link>https://blog.youkuaiyun.com/superliminal/article/details/105812783</link><guid>https://blog.youkuaiyun.com/superliminal/article/details/105812783</guid><author>superliminal</author><pubDate>Tue, 28 Apr 2020 16:39:02 +0800</pubDate><description><![CDATA[1.高阶函数


所谓高阶函数就是使用一个或多个函数作为参数，或者是将函数作为返回值返回




map 是一个在 Python 里非常有用的高阶函数，它接受一个函数和一个序列（迭代器）作为输入然后对序列（迭代器）的每一个值应用这个函数，返回一个序列（迭代器），其包含应用函数后的结果




2.闭包

将函数作为返回值也是高阶函数，也称之为闭包
闭包的好处

创建只有当前函数可以访问的变量
可以...]]></description><category></category></item><item><title><![CDATA[GNS3中下载路由器]]></title><link>https://blog.youkuaiyun.com/superliminal/article/details/105340612</link><guid>https://blog.youkuaiyun.com/superliminal/article/details/105340612</guid><author>superliminal</author><pubDate>Sat, 25 Apr 2020 18:37:54 +0800</pubDate><description><![CDATA[GNS3中下载路由器
以我的c7200为例
第一步：打开GNS3
第二部：选择Edit

然后选择Preferences（Ctrl+Shift+P）

第三步：
第四步：这里选择你下载GNS3时选择的运行方式，我的是在VMware中

第五步：导入路由器

第六步：这里是指定平台和名称
第七步：设置内存上限
第八步：请选择应插入此路由器的每个新实例中的默认网络适配器

第九步：这里直接点Finis...]]></description><category></category></item><item><title><![CDATA[万能的函数（二）]]></title><link>https://blog.youkuaiyun.com/superliminal/article/details/105744632</link><guid>https://blog.youkuaiyun.com/superliminal/article/details/105744632</guid><author>superliminal</author><pubDate>Sat, 25 Apr 2020 10:22:05 +0800</pubDate><description><![CDATA[1. 函数的返回值

返回值就是函数执行以后返回的结果
通过 return 来指定函数的返回值
return 后面可以跟任意对象，甚至可以是一个函数




2.文档字符串


help（）是Python的内置函数，通过help（）可以查询Python中函数的用法



在定义函数时，可以在函数内部编写文档字符串，文档字符串就是对函数的说明




3. 函数的作用域（scope）

作用域指的是...]]></description><category></category></item><item><title><![CDATA[万能的函数 （一）]]></title><link>https://blog.youkuaiyun.com/superliminal/article/details/105707136</link><guid>https://blog.youkuaiyun.com/superliminal/article/details/105707136</guid><author>superliminal</author><pubDate>Fri, 24 Apr 2020 14:22:48 +0800</pubDate><description><![CDATA[1.函数的简介

函数也是一个对象
函数用来保存一些可执行的代码，并且可以在需要时进行多次调用
语法：

def 函数名（形参1，形参2.....）
	代码块


函数的命名必须符合标识符的命名规范，而且函数必须先定义后声明才能使用

2.函数的参数
2.1 形参和实参

形参（形式参数），定义了形参就是相当于在函数内部声明了变量，并不是赋值
实参（实际参数）指定了形参，函数调用时必须传递实参，实...]]></description><category></category></item><item><title><![CDATA[数据结构——元组&&字典&&集合]]></title><link>https://blog.youkuaiyun.com/superliminal/article/details/105656777</link><guid>https://blog.youkuaiyun.com/superliminal/article/details/105656777</guid><author>superliminal</author><pubDate>Tue, 21 Apr 2020 16:18:27 +0800</pubDate><description><![CDATA[1.元组简介

元组属于容器存储、不可变、顺序访问的数据类型。
元组可以看作不可变序列 ，除此之外，和列表非常相似
我们希望数据不改变时使用元组，其余情况下使用列表
（）创建元组
元组不是空元组时至少有一个逗号，而且元组不为空时  “（）” 可以省略

元组解包是指把元组中的每一个元素赋值给一个变量（在元组解包时，变量的数量必须与元组中元素一一对应，若没有对等，可以在变量前面加个* ，否则会报错。...]]></description><category></category></item></channel></rss>