- 博客(48)
- 收藏
- 关注
原创 7-多线程爬虫糗事百科
7-多线程爬虫糗事百科 简介 多线程 thread 在 Python 里面被称作鸡肋的存在!不建议使用,多是使用多进程,虽然不建议使用,还是做个笔记吧。 实现线程的两种方式 直接利用函数创建多线程 import _thread import time # 为线程定义函数 def print_time(thread_name, delay): count = 0 while c...
2020-05-01 21:00:03
391
原创 6-JSON的处理
【Python3网络爬虫】6-JSON的处理 简介 JSON,全称为JavaScript Object Notation, 也就是JavaScript对象标记,它通过对象和数组的组合来表示数据,构造简洁但是结构化程度非常高,是一种轻量级的数据交换格式 Python中的json模块 dumps、dump、loads、load json.loads() 把Json格式字符串解码转换成Python对...
2020-05-01 20:59:16
289
原创 5-BeautifulSoup的使用
【Python3网络爬虫】5-BeautifulSoup的使用 简介 BeautifulSoup最主要的功能是从网页抓取数据,Beautiful Soup自动将输入文档转换为Unicode编码,输出文档转换为utf-8编码。BeautifulSoup支持Python标准库中的HTML解析器,还支持一些第三方的解析器,如果我们不安装它,则 Python 会使用 Python默认的解析器,lxml ...
2020-05-01 20:58:36
531
原创 4-正则运用之爬取糗事百科
【Python3网络爬虫】4-正则运用之爬取糗事百科 正则表达式实战巩固 import requests from fake_useragent import UserAgent import re url = 'https://www.qiushibaike.com/text/page/{}/' headers = { 'User-Agent': UserAgent().chrom...
2020-05-01 20:57:58
311
原创 3-正则表达式
【Python3网络爬虫】3-正则表达式 re.match函数 re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。 函数语法: re.match(pattern, string, flags=0) 函数参数说明: 参数 描述 pattern 匹配的正则表达式 string 要匹配的字符串。 flags 标志...
2020-05-01 20:57:22
262
原创 2-Requests库的使用
【Python3网络爬虫】2-Requests库的使用 介绍 对了解爬虫的一些基本理念,掌握爬虫爬取的流程后,我们需要学习一些更加高级的工具和内容来方便我们的爬取,本节主要介绍requests库的基本用法 安装 pip insatll requests 基本请求 import requests # requests.api url = "http://www.baidu.com" requ...
2020-05-01 20:55:47
540
原创 1-urllib库的使用
【Python3网络爬虫】1-urllib库的使用 内置模块介绍 Python内置的HTTP请求库,包含四个模块 error异常处理模块,如果出现请求错误,我们可以捕获这些异常,然后进行重试或其他操作以保证程序不会意外终止。 parse一个工具模块,提供了许多URL处理方法,比如拆分、解析、合并等。 request它是最基本的HTTP请求模块,可以用来模拟发送请求。就像在浏览器里输入...
2020-05-01 20:54:06
353
原创 数据库技术构成
数据库系统,由硬件和软件两部分构成。硬件,主要用于存储数据库中的数据,包括计算机、存储设备等。软件部分主要包括DBMS(数据库管理系统)、支持DBMS运行的操作系统,以及支持多种语言进行应用开发的访问数据等。 1、数据库系统 数据库系统由3个主要组成部分: ·数据库(DataBase System):用于存储数据的地方。 ·数据库管理系统(DataBase Management Sy...
2019-10-25 15:11:38
934
原创 享元模式
享元模式 运用共享技术有效的支持大量细粒度的对象,主要用于减少创建对象的数量,以减少内存占用和提高性能,属于结构型模式。提供了减少对象数量从而改善应用所需的对象结构的方式 使用场景 系统有大量相似对象 需要缓冲池的场景 优点 大大减少对象的创建,降低系统的内存,使效率提高 缺点 提高了系统的复杂度,需要分理出外部状态和内部状态,否则可能会引起线程安全问题 这些类必须有一个工厂对象加以控制 ...
2019-10-25 15:11:25
178
原创 idea集成docker部署springboot项目
idea集成docker部署springboot项目 宿主机器/服务器docker配置 配置docker远程连接端口 vi /usr/lib/systemd/system/docker.service 找到 ExecStart,在最后面添加 -H tcp://0.0.0.0:2375 重启docker systemctl daemon-reload systemctl start do...
2019-10-25 15:04:58
935
原创 HDFS(hadoop分布式文件系统)
HDFS(hadoop分布式文件系统) 一、特点 可存储超大文件 一次写入,多次读取 运行在普通廉价的机器 二、不适用场景 低延迟 大量小文件 多用户更新 结构化数据 数据量不大 三、基本命令 打印文件列表(ls) 标准写法: hadoop fs -ls hdfs:/ #hdfs: 明确说明是HDFS系统路径 简写: hadoop fs -ls / #默认是HDFS系统下的...
2019-05-22 12:05:32
367
原创 # centos7安装mysql
centos7安装mysql 查看当前安装的mariadb rpm -qa|grep mariadb 强制删除的当前安装的mariadb rpm -e --nodeps mariadb-libs-5.5.44-2.el7.centos.x86_64 查看当前安装的mysql rpm -qa|grep mysql 强制删除安装的mysql 安装mysql yum -y install mysql...
2019-05-06 18:02:12
149
原创 互信ssh登录
互信ssh登录 设置hostname 临时设置hostname:hostname [需要改的名称] 永久设置hostname:hostnamectl set-hostname[需要修改的主机名称] 修改映射关系 在所有节点上修改/etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.local...
2019-05-06 18:01:50
312
原创 centos设置静态ip地址
centos设置静态ip地址 vim /etc/sysconfig/network-scripts/ifcfg-ens33 原文 TYPE=Ethernet PROXY_METHOD=none BROWSER_ONLY=no BOOTPROTO=dhcp DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6...
2019-05-06 18:01:24
260
原创 CENTOS7关闭防火墙和selinux
防火墙 CENTOS7查看防火墙状态 firewall-cmd --state 临时停止firewall syatemctl stop firewalld.service 永久禁止开启启动firewall systemctl disable firewalld.service SELinux 查看 getenforce 或者 /usr/sbin/sestatus -v ...
2019-05-06 18:00:35
6362
1
原创 Lambda表达式
Lambda表达式 Ladmaba简介 Lambda表达式可以理解成可传递的匿名函数的一种方式,由参数、箭头和主体组成 Lambada表达式只能配合函数式接口使用,那么什么是函数式接口呢? 函数式接口:只有一个抽象方法的接口,可以用@FunctionalInterface标记 java8设计的几个常见的函数式接口 Predicate @FunctionalInterface publ...
2019-04-20 23:24:01
401
原创 java实战之行为参数化传递代码
行为参数化传递代码 行为参数化是一种处理频繁变更需求的软件开发模式 例如现在有一个需求,我们需要筛选出所有的绿色的苹果,我们可以这么去操作 源码 public static List<Apple> filterGreenApple(List<Apple> inventory){ List<Apple> result = new Array...
2019-04-20 12:30:27
353
原创 虚拟机共享文件,安装vmware tool
虚拟机共享文件,安装vmware tool mkdir /mnt/cdrom 将光盘挂载到/mnt/cdrom目录下mount -t iso9660 /dev/cdrom /mnt/cdrom 将名为“VMwareTools-9.2.0-799703.tar.gz”复制到/root目录下,并重新命名为vm.tar.gzcp /mnt/cdrom/VMwareTools-9.2.0-799703...
2019-02-22 20:38:38
255
原创 配置网络环境(centos7)
配置网络环境(centos7) 选择NAT模式 选择 编辑->虚拟网络编辑器 移除VMnet8 添加如下设置 注意选择nat模式 cd /etc/sysconfig/network-scripts vi ifcfg/ens33,按如下内容修改 ip addr查看ip ping 查看网络连接 ...
2019-02-22 18:28:38
278
原创 外观模式
外观模式 外观模式(Facade),他隐藏了系统的复杂性,并向客户端提供了一个可以访问系统的接口。这种类型的设计模式属于结构性模式。为子系统中的一组接口提供了一个统一的访问接口,这个接口使得子系统更容易被访问或者使用。 使用场景 客户端不需要知道系统内部的复杂联系,整个系统只需要提供一个“接待员”即可 定义系统的入口 优点 减少系统相互依赖 提高灵活性 提高了安全性 缺点 不符合开闭原则...
2019-01-22 16:35:05
153
原创 适配器模式
适配器模式 将一个类的接口,转化成客户期望的另一个接口。让原本接口不兼容的类可以合作无间,属于结构型模式。 从结构上分为类适配器、对象适配器和缺省适配器,类适配器,提供一个实现该接口的类,并且扩展已有的类,通过创建 子类来实现适配,对象适配器使用对象引用进行适配。缺省适配器由一个抽象类实现,并且在抽象类中实现所有的方法,具体的子类都要继承此抽象类 如何解决 继承和依赖 关键代码 继承或依赖已有的...
2019-01-22 16:34:37
163
原创 设计模式
设计模式 1. 什么是设计模式 设计模式是对软件设计过程中普遍存在的问题,提出的解决方案。换句话说,设计模式就是一套被反复使用,大多人知晓,经过分类的,代码设计的经验的总结。他是为了可重用代码,让代码更容易被他人理解,保证代码的高可靠性和高位户型 2. 设计模式原则 开闭原则 对扩展开放,对修改关闭。在程序需要扩展的时候,不修改原有的代码或者对原来的代码产生影响,达到一个热插拔的效果。...
2019-01-22 16:33:40
150
原创 桥接模式
桥接模式 将抽象部分和实现部分分离,使他们可以独立的变化。它是一种对象结构型模式,又称为柄体(Handle and Body)模式或接口(Interfce)模式。 桥接模式将继承关系转化成关联关系,它降低了类与类之间的耦合度,减少了系统中类的数量,也减少了代码量。 优点 抽象和实现的分离 优秀的扩展能力 实现细节对客户的透明 缺点 桥接模式的引入会增加系统的理解与设计难度,由于聚合关联关系建...
2019-01-22 16:32:27
161
原创 建造者模式
建造者模式 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。简单点讲,就是使用多个简单的对象一步一步构建成一个复杂的对象,属于创建型模式,提供了一种创建对象的最佳方式。 优点 建造者独立,容易扩展 便于控制细节风险 缺点 产品必须有共同点,范围有限制 内部变化复杂,会有很多的建造类 案例 以lol 盖伦、赵信召唤师为例,召唤师都有名称和qwer技能 packag...
2019-01-22 16:31:39
193
原创 简单工厂模式
简单工厂模式 定义 工厂方法模式(英语:Factorymethod pattern)是一种实现了“工厂”概念的面向对象设计模式。就像其他创建型模式一样,它也是处理在不指定对象具体类型的情况下创建对象的问题。工厂方法模式的实质是“定义一个创建对象的接口,但让 实现这个接口的类来决定实例化哪个类。工厂方法让类的实例化推迟到子类中进行。” 创建一个对象常常需要复杂的过程,所以不适合包含在一个复合对象中...
2019-01-22 16:30:58
195
原创 过滤器模式
过滤器模式(标准模式) 允许开发人员使用不同的标准来过滤一组对象,通过逻辑运算以解耦的方式把他们连接起来 案例 Person类有三个属性:姓名(Name)、性别(Gender)和婚姻情况(Marital),我们的系统中的一些功能需要对这些属性进行筛选,比如: 得到所有的男性; 得到所有的女性; 得到所有还单身的人; 得到所有已婚的人。 系统还希望能够将这些条件组合起来进行筛选,比如: 得到...
2019-01-22 16:30:11
202
原创 观察者模式
观察者模式(发布-订阅模式) 观察者模式定义了一对多的依赖,当一个对象状态发生变化时,他的所有依赖者都会收到通知并自动更新。属于行为型模式。 主要解决 一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作 关键代码 在抽象类里又一个ArrayList存放观察者们 优点 观察者和被观察者是抽象耦合的 建立一套触发机制 缺点 如果一个被观察者对象有很多直接或间接的...
2019-01-22 16:28:54
142
原创 代理模式
代理模式 为其他对象提供一种代理以控制对这个对象的访问 应用实例 spring aop 优点 职责清晰 高扩展性 智能化 缺点 由于在客户端和真实主题之间增加了代理对象,因此有些类型的代理模式可能会造成请求的处理速度变慢。 实现代理模式需要额外的工作,有些代理模式的实现非常复杂。 注意 和适配器模式的区别:适配器模式主要改变所考虑对象的接口,而代理模式不能改变所代理类的接口。 和装饰器...
2019-01-22 16:27:51
254
原创 策略模式
策略模式 定义了算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户,属于行为型模式。 意图 定义一系列的算法,把他们一个个封装起来,使他们可以相互替换 主要解决 在有多种算法相似的情况下,使用if…else所带来的复杂和难以维护 何时使用 一个系统有许多许多类,而区分他们的只是他们的直接行为 关键代码 实现一个接口 案例 计算器的算法 实现一个项目的多个主...
2019-01-22 16:25:51
280
2
转载 悲观锁和乐观锁
悲观锁和乐观锁(转载)原文 发表于 2018-12-12 | 分类于 并发 在介绍悲观锁和乐观锁之前,我们先看一下一个案例,简单介绍一下超反现象。 超反现象案例 eg:购买产品 CREATE TABLE product ( id int(11) NOT NULL AUTO_INCREMENT, name varchar(60) DEFAULT NULL COMMENT ‘名称’, stock in...
2018-12-13 10:03:40
121
原创 单例模式
单例模式 定义 单例模式,属于创建型模式,提供了一种对象创建的最佳方式。它确保了一个类只有一个实例,并提供了一个全局访问点。 特征 单例类只能有一个实例 单例类必须自己创建自己的唯一实例 单例类必须给所有其他对象提供这一实例 意图 保证一个类仅有一个实例,并提供一个访问他的全局访问点 主要解决 一个全局使用的类频繁的创建和销毁 何时使用 当你想控制实例数目,节省系统资源的时候 如何解决 判断...
2018-10-16 13:47:33
127
转载 抽象工厂模式
抽象工厂模式 定义 抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。 使用场景 提供一个创建一系列相关或相互依赖对象的接口,而无需指定...
2018-10-16 13:44:29
138
原创 git总结
GIT 分布式版本控制系统,跟踪并管理修改而非文件 GIT 1.配置 2. github建立远程仓库 3. 分支 4. 解决bug方法 5. 多人合作 6. 标签 7. 搭建git服务器 1.配置 git config –global user.name “your name” git config –global user.email “email.@example...
2018-04-17 16:47:49
200
原创 Mysql 中replace into
replce into替代的作用,如果添加字段中没有主键或者索引,那么他只起到添加作用;如果有主键或索引,那么则会先判断这条数据是否存在,存在则更新,不存在则添加 案例:id为主键情况下 执行:replace into test(id,name) values(1,"sss"); 再次执行:replace into test(id,name)values(1,"yyy");
2018-01-27 16:05:18
428
原创 Mysql中delete和drop的区别
delete删除表数据 drop删除表结构和数据 eg: delete from test; 执行结果: drop table test; 执行结果:
2018-01-27 15:47:58
4605
原创 math
package math; public class MathDemo { public static void main(String[] args) { // 定义一个值5 int a = 5; // 计算5的平方根 System.out.println("5的平方根是:"+Math.sqrt(a)); double x = 5.14; double y = 6.1
2017-09-28 14:32:50
191
原创 输出某一个月的日历
package date; import java.util.Calendar; public class PrintCalendar { public static void main(String[] args) { System.out.print(" 日 一 二 三 四 五 六"); Calendar calendar = Calendar.get
2017-09-28 14:17:12
995
原创 Calendar日历函数
package date; import java.util.Calendar; import java.util.Date; public class CalendarDemo { public static void main(String[] args) { // 初始化日历 Calendar calendar = Calendar.getInstance();
2017-09-28 13:53:55
4906
原创 Date获取以及格式化
package date; import java.text.SimpleDateFormat; import java.util.Date; public class DateDemo { public static void main(String[] args) { Date nowTime = new Date(); System.out.println("当前时间是:"+n
2017-09-27 16:50:37
473
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅