Python动态网站的抓取
摘要:网页下载器 # coding:utf-8import requestsimport urllib2import systype = sys.getfilesystemencoding()class HtmlDownloader(object): def download(slef, url): if
阅读全文
posted @
2018-01-31 18:32
paulversion
阅读(281)
推荐(0) 编辑
MongoDB
摘要:MongoDB是一个基于分布式文件存储的数据库,由C++语言编写,旨在为web应用提供可扩展的高性能数据存储解决方案。与MysSQL不同,MongoDB是一个介于关系数据库和非关系数据库之间的产品,属于非关系数据库。
阅读全文
posted @
2018-01-31 11:44
paulversion
阅读(96)
推荐(0) 编辑
Python 使用MySQL
摘要:在导入MySQLdb之前,需要安装MySQLdb模块。使用pip安装,命令如下: pip install MySQL-python 安装成功后,导入MySQLdb模块 import MySQLdb 连接数据库
阅读全文
posted @
2018-01-31 11:32
paulversion
阅读(151)
推荐(0) 编辑
Python简单分布式爬虫
摘要:分布式爬虫采用主从模式。主从模式是指由一台主机作为控制节点,负责管理所有运行网络爬虫的主机(url管理器,数据存储器,控制调度器),爬虫只需要从控制节点哪里接收任务,并把新生成任务提交给控制节点。此次使用三台主机进行分布式爬取,一台主机作为控制节点,另外两台主机作为爬虫节点。 控制节点主要分为url
阅读全文
posted @
2018-01-30 17:34
paulversion
阅读(243)
推荐(0) 编辑
Python 基础爬虫架构
摘要:基础爬虫框架主要包括五大模块,分别为爬虫调度器、url管理器、HTML下载器、HTML解析器、数据存储器。 1:爬虫调度器主要负责统筹其他四个模块的协调工作 2: URL管理器负责管理URL连接,维护已经爬取的URL集合和未爬取的URL集合,提供获取新URL链接的接口 3: HTML下载器用于从UR
阅读全文
posted @
2018-01-24 18:30
paulversion
阅读(755)
推荐(0) 编辑
Python 邮箱
摘要:#coding:utf-8from email.header import Headerfrom email.mime.text import MIMETextfrom email.utils import parseaddr,formataddrimport smtplib def _fromat
阅读全文
posted @
2018-01-24 15:44
paulversion
阅读(213)
推荐(0) 编辑
Mysql InnoDB表结构
摘要:索引组织表 在InnoDB存储引擎中,表都是根据主键顺序组织存放的,这种存储方式的表称为索引组织表(index organized table).在InnoDB存储引擎表中,每张表都有个主键(Primary Key),如果在创建表时没有显式地定义主键,则InnoDB存储引擎会按如下方式选择或创建主键
阅读全文
posted @
2018-01-23 23:09
paulversion
阅读(2132)
推荐(0) 编辑
Python 抓取图片
摘要:#coding:utf-8from bs4 import BeautifulSoupimport requestsimport urllib user_agent = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTM
阅读全文
posted @
2018-01-23 18:25
paulversion
阅读(239)
推荐(0) 编辑
Python将数据保存到CSV中
摘要:#coding:utf-8import csv headers = ['ID','UserName','Password','Age','Country'] rows = [(1001,'qiye','qiye_pass',24,'China'), (1002,'Mary','Mary_pass',
阅读全文
posted @
2018-01-23 17:04
paulversion
阅读(49593)
推荐(0) 编辑
Python 爬取盗墓笔记的标题,章节,章节名称
摘要:# coding:utf-8import requestsimport jsonfrom bs4 import BeautifulSoup user_agent = 'Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML
阅读全文
posted @
2018-01-23 16:33
paulversion
阅读(590)
推荐(0) 编辑
MySQL文件和Innodb引擎文件
摘要:构成MySQL数据库和InnoDB存储引擎表的各种类型文件,组要有以下文件 参数文件:告诉MySQL实例启动时在哪里可以找到,数据库文件,并且指定某些初始化参数,这些参数定义了某种内存结构的大小等设置 日志文件:用来记录MySQL实例对某种条件做出响应时写入的文件,如错误日志文件、二进制日志文件、慢
阅读全文
posted @
2018-01-22 23:43
paulversion
阅读(1458)
推荐(0) 编辑
Python beautifulSoup
摘要:BeautifulSoup将复杂HTML文档转换成一个复杂的树形结构,每个节点都是Python对象,所有对象可以归纳为4种: Tag、NavigableString、BeautifulSoup 、Comment Tag对象与XML或HTML原生文档中的Tag相同,比如<title>The Dormo
阅读全文
posted @
2018-01-22 18:21
paulversion
阅读(160)
推荐(0) 编辑
python 正则
摘要:可以下载一个正则表达式工具Match Tracer 常见的元字符 . 匹配除换行符以外的任意字符 \b 匹配单词的开始或结束 \d 匹配数字 \w 匹配字母、数字、下划线或汉子 \s 匹配任意空白符, 包括空格、制表符、换行符、中文全角空格等 ^ 匹配字符串的开始 $ 匹配字符串的结束 假如一行文本
阅读全文
posted @
2018-01-22 14:45
paulversion
阅读(148)
推荐(0) 编辑
redis 服务器
摘要:Redis服务器负责与多个客户端建立网络连接,处理客户端发送的命令请求,在数据库中保存客户端执行命令所产生的数据,并通过资源管理来维持服务器自身的运转 命令请求的执行过程 set key value 那么从客户端发送set key value 命令到获得回复ok期间,客户端和服务器共需要执行以下操作
阅读全文
posted @
2018-01-20 15:01
paulversion
阅读(1154)
推荐(0) 编辑
python udp
摘要:tcp通信需要一个建立可靠连接的过程,而且通信双方以流的形式发送数据。相对于TCP,UDP则是面向无连接的协议。使用UDP协议时,不需要建立连接,只需要知道对方的IP地址和端口,就可以直接发数据包,并不关心是否能到达目的端。虽然用UDP传输数据不可靠,但是由于它没有建立连接的过程,速度比TCP快得多
阅读全文
posted @
2018-01-19 15:07
paulversion
阅读(210)
推荐(0) 编辑
python tcp
摘要:tcp服务器端: 创建和运行TCP服务端一般需要五个步骤: 1:创建Socket对象,绑定Socket到本地ip与端口(bind) 2:开始监听连接(listen) 3:进入循环,不断接收客户端的连接请求(accept) 4:接收传来的数据,并发送给对方数据(recv,send()) 5:传输完毕后
阅读全文
posted @
2018-01-19 14:34
paulversion
阅读(136)
推荐(0) 编辑
python cPickle和pickle 序列化
摘要:在Python中提供了两个模块:cPickle和pickle来实现序列化,前者是由C语言编写的,效率比后者高很多,一般编写程序的时候,采取的方案是先导入cPickle模块,如果此模块不存在,再导入pickle模块 try : import cPickle as pickle except Impor
阅读全文
posted @
2018-01-19 10:23
paulversion
阅读(181)
推荐(0) 编辑
redis事件
摘要:Redis服务器是一个事件驱动程序,服务器需要处理以下两类事件 1:文件事件(file event):Redis服务器通过套接字与客户端进行连接,而文件事件就是服务器对套接字操作的抽象。服务器与客户端的通信会产生相应的文件事件,而服务器则通过监听并处理这些事件来完成一系列网络通信操作 2:时间事件(
阅读全文
posted @
2018-01-19 01:08
paulversion
阅读(465)
推荐(0) 编辑
python 操作文件和目录
摘要:import os dir = os.getcwd();#获取当前Python脚本工作的目录路径 file_list = os.listdir('e:\\')#返回e盘下的所以文件(列表类型)(目录名和文件名) os.remove(r'e:\a.txt') #删除指定路径下的文件 os.remove
阅读全文
posted @
2018-01-18 18:41
paulversion
阅读(158)
推荐(0) 编辑
python 线程(thread)
摘要:#coding:utf-8#多线程#Python的标准库提供了两个模块:thread和threading,thread是低级模块,threading是高级模块,对thread进行了封装 #绝大数情况下,我们只需要使用threading这个高级模块#启动一个线程就是把一个函数传入并创建Thread实例
阅读全文
posted @
2018-01-18 15:09
paulversion
阅读(374)
推荐(0) 编辑
python 多进程
摘要:#coding:utf-8#要让Python程序实现多进程(multiprocessing)#Unix/Linux操作系统提供了一个fork()系统调用,它非常特殊。#普通的函数调用,调用一次,返回一次,但是fork()调用一次,返回两次,因为操作系统#自动把当前进程(父进程)复制了一份(称为子进程
阅读全文
posted @
2018-01-18 11:56
paulversion
阅读(126)
推荐(0) 编辑
redis AOF持久化
摘要:除了RDB持久化功能之外,Redis还提供了AOF(Append Only File)持久化功能。与RDB持久化通过保存数据库中的键值对来记录数据库状态不同,AOF持久化是通过保存Redis服务器所执行的写命令来记录数据库状态的 例如 set msg hello,RDB持久化保存数据库状态的方法是将
阅读全文
posted @
2018-01-18 01:36
paulversion
阅读(151)
推荐(0) 编辑
redis RDB持久化
摘要:为了避免数据意外丢失,Redis提供了RDB持久化功能,这个功能可以将Redis在内存中的数据库状态保存到磁盘里面。 RDB持久化可以手动执行,也可以根据服务器配置选项定期执行,该功能可以将某个时间点上的数据库状态保存到一个RDB文件中 RDB文件的创建与载入 有两个Redis命令可以用于生成RDB
阅读全文
posted @
2018-01-18 00:37
paulversion
阅读(174)
推荐(0) 编辑
python urllib2/urllib实现
摘要:urllib2和urllib是Python中的两个内置模块,要实现HTTP功能,实现方式是以urllib2为主,urllib为辅 urllib2提供一个基础函数urlopen,通过向指定的url发出请求来获取数据。最简单的形式是 get 请求
阅读全文
posted @
2018-01-17 17:54
paulversion
阅读(188)
推荐(0) 编辑
PHP使用swoole来实现实时异步任务队列
摘要:关于异步任务队列 用户打开了我们的网站。他要做的就是勾选需要发邮件的代理商列表,然后把结算邮件发出去。假如我们需要发1封邮件,我们写个函数执行即可。考虑到网络可能会稍微有点延迟,但是是可以接受的,用户会乖乖等你的网页发完邮件了再关闭网页。假如我们要发布10封邮件,用一个for循环,循环10遍执行发邮
阅读全文
posted @
2018-01-17 13:59
paulversion
阅读(4129)
推荐(0) 编辑
http 状态吗
摘要:100:继续 客户端应当继续发送请求。客户端应当继续发送请求的剩余部分,或者如果请求已经完成,忽略这个响应。 101: 转换协议 在发送完这个响应最后的空行后,服务器将会切换到在Upgrade 消息头中定义的那些协议。只有在切换新的协议更有好处的时候才应该采取类似措施。 102:继续处理 由WebD
阅读全文
posted @
2018-01-16 11:30
paulversion
阅读(204)
推荐(0) 编辑
redis 数据库
摘要:Redis服务器默认会创建16个数据库 切换数据库 每个redis客户端都有自己的目标数据库,每当客户端执行数据库写命令或者数据库读命令的时候,目标数据库就会成为这些命令的操作对象。默认情况下Redis客户端的目标数据库为0号数据库,但客户端可以通过执行select命令来切换目标数据库。到目前为止,
阅读全文
posted @
2018-01-10 23:43
paulversion
阅读(239)
推荐(0) 编辑
centos7.0 安装docker
摘要:yum -y install docker docker中常用的命令 docker run -it --name 新名字 centos /bin/bash docker images 查看所有镜像 docker pull 拉去镜像 docker search 镜像名字 docker rm 删除容器
阅读全文
posted @
2018-01-09 18:24
paulversion
阅读(124)
推荐(0) 编辑
Dockerfile指令
摘要:Dockerfile中常用的指令CMD,ENTRYPOINT,ADD,COPY,VOLUME,WORKDIR,USER,ONBUILD和ENV等 CMD指令用于指定一个容器启动时要运行的命令,和RUN指令类似,只是RUN指令是指定镜像被构建时要运行的指令,而CMD是指定容器被启动时要运行的命令。 d
阅读全文
posted @
2018-01-09 14:54
paulversion
阅读(142)
推荐(0) 编辑
mysql InnoDB存储引擎
摘要:InnoDB是事务安全的MySQL存储引擎,设计上采用了类似于Oracle数据的架构。通常来说,InnoDB存储引擎是OLTP应用中核心表的首选存储引擎。该存储引擎是第一个完整支持ACID事务的MySQL存储引擎,其特点是行锁设计、支持MVCC、支持外键、提供一致性非锁定读,同时被设计用来最有效的地
阅读全文
posted @
2018-01-08 23:45
paulversion
阅读(197)
推荐(0) 编辑
php 代码的执行
摘要:PHP内核的实现和世界上绝大数的程序一样,接收输入数据,做相应处理后输出结果。用PHP编写的代码就是输入数据,PHP内核对编写的代码进行解释和运算,最后返回运算结果。当编写的PHP代码给内核去执行的时候,PHP内核会对PHP代码进行词法分析、语法分析。词法分析把PHP代码分割成一个个的单元(toke
阅读全文
posted @
2018-01-07 22:55
paulversion
阅读(277)
推荐(0) 编辑
深入PHP内核 SAPI探究
摘要:转自 http://www.csdn.net/article/2014-09-26/2821885-exploring-of-the-php-2 SAPI是Server Application Programming Interface(服务器应用编程接口)的缩写。PHP通过SAPI提供了一组接口,
阅读全文
posted @
2018-01-07 22:27
paulversion
阅读(138)
推荐(0) 编辑
Apache Prefork、Worker和Event三种MPM分析
摘要:原文转载:http://www.cnblogs.com/fnng/archive/2012/11/20/2779977.html 三种MPM介绍 Apache 2.X 支持插入式并行处理模块,称为多路处理模块(MPM)。在编译apache时必须选择也只能选择一个MPM,对类UNIX系统,有几个不同的
阅读全文
posted @
2018-01-07 22:23
paulversion
阅读(306)
推荐(0) 编辑
CGI FastCGI PHP-CGI PHP-FRM
摘要:CGI(Common GateWay Interface )通用网关接口,CGI可以让一个客户端,从网页浏览器向执行在Web服务器上的程序请求数据。CGI描述了客户端和这个程序之间传输数据的一种协议标准 CGI的运行原理 1:客户端访问某个URL地址之后,通过get/post/put等方式提交数据,
阅读全文
posted @
2018-01-07 16:07
paulversion
阅读(186)
推荐(0) 编辑
redis 对象
摘要:redis包含5种对象 字符串对象、列表对象、哈希对象、集合对象和有序集合对象 redis的对象系统实现了基于引用计数技术的内存回收机制、当程序不再使用某个对象的时候,这个对象所占的内存就会被自动释放Redis 通过引用计数实现了对象共享机制,多个数据库键共享同一个对象来节约内存。 Redis使用对
阅读全文
posted @
2018-01-05 17:58
paulversion
阅读(1271)
推荐(0) 编辑
redis 底层数据结构 压缩列表 ziplist
摘要:压缩列表是列表键和哈希键的底层实现之一。当一个列表键只包含少量列表项,并且每个列表项要么就是小整数,要么就是长度比较短的字符串,redis就会使用压缩列表来做列表键的底层实现 当一个哈希键只包含少量键值对,并且每个键值对的键和值要么就是小整数值,要么就是长度比较短的字符串,那么Redis就会使用压缩
阅读全文
posted @
2018-01-05 13:30
paulversion
阅读(5650)
推荐(0) 编辑
redis 底层数据结构 整数集合intset
摘要:整数集合是集合键的底层实现之一,当一个集合只包含整数值元素,并且这个集合的元素数量不多时Redis就会使用整数集合作为集合键的底层实现 整数集合是Redis用于保存整数值的集合抽象数据结构,它可以保存类型为int_16,int_32,int_64的整数值并且保证集合中不会出现重复元素 content
阅读全文
posted @
2018-01-05 10:58
paulversion
阅读(432)
推荐(0) 编辑
mysql的体系架构和存储引擎
摘要:定义数据库和实例 数据库:物理操作系统的文件或其他形式文件类型的集合。在mysql数据库中,数据库文件可以是frm、MYD、MYI、ibd结尾的文件。 实例:MySQL数据库由后台线程以及一个共享内存组成。共享内存可以被运行的后台线程所共享。数据库实例才是真正用于操作数据库文件的。 数据库是文件的集
阅读全文
posted @
2018-01-04 23:40
paulversion
阅读(322)
推荐(0) 编辑
redis 有序集合数据结构实现 skiplist
摘要:Redis使用跳跃表作为有序集合键的的底层实现,如果一个有序集合包含的元素数量比较多,又或者有序集合中元素的成员是比较长的字符串时Redis就会使用跳跃表 来作为有序集合键的底层实现 Redis只在两个地方用到了跳跃表,一个是实现有序集合键,另一个是在集群节点中用作内部数据结构 跳跃表的数据结构为
阅读全文
posted @
2018-01-04 18:25
paulversion
阅读(5407)
推荐(1) 编辑
redis字典的底层实现hashTable
摘要:Redis的字典使用哈希表作为底层实现。一个哈希表里面可以有多个哈希表节点,而每个哈希表节点就保存了字典中的一个键值对 哈希表的数据结构为 table属性是一个数组,数组中的每个元素都是指向dictEntry结构的指针,每个dictEntry结构保存着一个键值对,size属性记录了table的大小
阅读全文
posted @
2018-01-04 16:17
paulversion
阅读(4763)
推荐(2) 编辑
redis 列表的底层数据结构链表
摘要:当一个列表键包含了数量比较多的元素,又或者列表中包含的的元素都是比较长的字符串,Redis就会使用链表作为列表键的底层实现 每个列表节点的数据结构为 列表数据接口中保存了 该节点前置节点的指针、后置节点的指针、和当前节点值的指针 如果值为字符串则指向sds数据结构 列表数据结构 head 为头指针指
阅读全文
posted @
2018-01-04 14:41
paulversion
阅读(211)
推荐(0) 编辑
redis string底层数据结构sds
摘要:redis的string没有采用c语言的字符串数组而采用自定义的数据结构SDS(simple dynamic string)设计 len 为字符串的实际长度 在redis中获取字符串的key长度的时间复杂度为O(1) free 为 buf数组中剩余的空间大小 buf 保存字符串的数组 使用free杜
阅读全文
posted @
2018-01-04 14:21
paulversion
阅读(645)
推荐(0) 编辑