自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

古语静水流深

时间是培养一切的土壤

  • 博客(198)
  • 收藏
  • 关注

原创 疫情下的失业

因为疫情的原因,公司业务受到了一定的损失,导致项目组解散。又要重新找工作。总的来说。不是特别开心的一件事情。但是多多少少给我带来了一些启发和教训。1.除了本职工作收入,是否还有其他的收入来源。否则下次遇到这样突发的情况。自身的存活问题如何处理。2.不要有太多负债或者超前消费。好的日子多多准备过冬的一些东西。3.该做一些苦日子的准备。就像四季轮回一样。当寒冬来领,是否应该停下来。等待...

2020-03-23 19:50:10 1606 2

原创 在thinkphp6中使用消息队列服务遇到的几个问题

thinkphp的消息队列遇到的问题

2022-06-06 00:59:22 2403 1

转载 SQL语言的分类

SQL语言分类结构化查询语言(Structured Query Language)简称SQL。SQL语言通常分为五类:DDL(数据定义语言):create、alter、drop等;DQL(数据查询语言):select等;DML(数据操纵语言):insert、delete 、update等;TCL(事务控制语言):commit、rollback等;DCL(数据控制语言):grant、revoke等。DDL(数据定义语言)数据定义语言(Data Definition Language)简称

2022-05-23 17:12:55 2030

原创 Vue的生命周期

对Vue中的生命周期的理解,对于使用vue有很大的帮助。8个钩子函数,4对(创建,挂载,更新,销毁)。对我们比较重要的是,挂载时刻(mounted函数)。销毁时刻(beforeDestroy)。这是比较重要的两个时刻。常用的生命周期钩子: 1.mounted: 发送ajax请求、启动定时器、绑定自定义事件、订阅消息等【初始化操作】。 2.beforeDestroy: 清除定时器、解绑自定义事件、取消订阅消息等【收尾工作】。关于销毁Vue实例...

2022-03-06 11:23:04 283

原创 selenium 使用的一些问题汇总

1.chrome_browser_main_extra_parts_metrics.cc(226)可以通过设置日志等级来进行过滤。chrome_options.add_argument('--log-level=3')2.定位元素的方法:建议使用find_element(by=By.xxxx)之前使用的都是find_element_by_id,后续建议为这个find_element(by=By.XPATH,xxx)查看源代码可以看到:通过By.xxx 字段来判断是...

2021-12-07 18:04:53 11226

原创 python爬虫 requests使用代理ip

请求时,先将请求发给代理服务器,代理服务器请求目标服务器,然后目标服务器将数据传给代理服务器,代理服务器再将数据给爬虫。代理服务器是经常变化的使用代理服务器时传一个参数:proxy。是一个字典的形式。http或者https这样的字段import requests# 使用代理proxy={ 'http':'http://221.238.207.34:8000' #可以找找国内的一些免费ip}result = requests.get("http://httpbin.o

2021-11-23 20:42:37 25970

原创 Python中requests的会话保持session详解

可能大家对session已经比较熟悉了,也大概了解了session的机制和原理,但是我们在做爬虫时如何会运用到session呢,就是接下来要讲到的会话保持。首先说一下,为什么要进行会话保持的操作?requests库的session会话对象可以跨请求保持某些参数,说白了,就是比如你使用session成功的登录了某个网站,则在再次使用该session对象求求该网站的其他网页都会默认使用该session之前使用的cookie等参数尤其是在保持登陆状态时运用的最多,在某些网站抓取,或者app抓取时,有的

2021-11-23 18:28:21 10030

原创 Python爬虫的案例分析(梨视频下载)

我们对梨视频的站点进行分析。得出如下结论:视频地址如下,但是在源码中并没有看到,也就得出这个页面是二次渲染。我们通过浏览器,找到返回视频地址的接口通过比对,返回的视频接口和播放地址,以及视频的初始url。得出如下结论:视频初始url:https://www.pearvideo.com/video_1743288,id:1743288, 替换了返回视频的时间字段。这样我们就可以拿到视频地址了。接下来就是下载视频。# 梨视频的下载import requests# 视...

2021-11-23 17:31:29 1836

原创 Python爬虫的xpath使用的技巧

XPath简述XPath (XML Path Language) 是一门在 XML 文档中查找信息的语言,可用来在 XML 文档中对元素和属性进行遍历。XPath 开发工具1.开源的XPath表达式编辑工具: XMLQuire(XML格式文件可用)2.Chrome插件 XPath Helper语法结构:如下:# XPath 基础表达式:/node 表示在xml文档的根目录查找结点名称为node的结点./node 表示在当前结点下查找结...

2021-11-22 15:56:49 237

原创 Python数据分析的bs4用法

在爬虫的世界里,数据解析占用很重要的位置数据解析原理:标签定位 提取标签、标签属性中存储的数据值bs4数据解析原理:1.实例化一个BeautifulSoup对象,并且将页面原码数据加载到该对象中 2.通过调用BeautifulSoup对象中相关的属性或方法进行标签定位和数据提取通过上述描述。我们需要安装所需要的库文件。执行如下:环境安装:pip install bs4pip install lxml使用时候导入包:from bs4 import Beautiful

2021-11-22 12:03:50 2635

原创 python爬虫requests库基础(一):Response对象属性

requests.get()构造一个向服务器请求资源的Request对象,返回一个包含服务器资源的Response对象,Reponse对象包含从服务器返回的所有对象资源Response对象的属性属性 说明r.status_code HTTP请求的返回状态,200表示连接成功,404表示失败r.text HTTP响应内容的字符串形式,即,...

2021-11-18 17:01:11 2211

原创 python response.text和response.content的区别

1、重点理解response.text返回的类型是strresponse.content返回的类型是bytes,可以通过decode()方法将bytes类型转为str类型推荐使用:response.content.decode()的方式获取相应的html页面2、扩展理解response.text 解码类型:根据HTTP头部对响应的编码做出有根据的推测,推测的文本编码 如何修改编码方式:response.encoding = 'gbk' response.content 解码...

2021-11-18 16:21:14 1201

原创 关于爬虫的一些想法

1.学号爬虫需要的知识。1.计算机网络(http/https协议,tcp/ip协议,socket编程)。因为很多时候我们需要对协议很清楚。这样才能模拟出需要的请求。2.前端的基础。(html+css+js)内容的获取和解析,需要前端的知识。xpath和bs4,都是要有一定的前端知识作为铺垫。3.正则表达式(用于内容解析)4.数据存储技术(分布式存储)当数据量达到很大的级别。需要对存储这块深入。5.并发处理技术(多线程,多进程,线程池,协程)6.图像识别(处理反爬,验证码),机器学习算

2021-11-14 18:11:56 917

原创 字符编码的问题梳理

计算机中储存的信息都是用二进制数表示的;而我们在屏幕上看到的英文、汉字等字符是二进制数转换之后的结果。通俗的说,按照何种规则将字符存储在计算机中,如'a'用什么表示,称为"编码";反之,将存储在计算机中的二进制数解析显示出来,称为"解码",如同密码学中的加密和解密。在解码过程中,如果使用了错误的解码规则,则导致'a'解析成'b'或者乱码。字符集(Charset):是一个系统支持的所有抽象字符的集合。字符是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等。字符编码(Character

2021-11-13 10:46:47 155

原创 Linux宝塔禁止国外ip访问服务器,屏蔽国外ip访问网站代码

屏蔽国外ip的目的是为了防止国外流量的攻击,因为大部分的DDoS攻击,都是国外的ip,成本比较低嘛,能够起到一定的作用。环境:linux服务器(CentOS 6或7都适用)、宝塔面板先运行如下命令行语句来获取国内IP网段,保存到此目录下:root/china_ssr.txt 1 wget-q--timeout=60-O-'http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest'|awk...

2021-11-10 10:19:12 4348

原创 使用腾讯官方的tbs调试微信中网页和小程序内容

注意: 仅支持android1.下载TBS,如果官方点击下载不下来,使用迅雷下载。我当时是点击没有反应。腾讯浏览服务-调试工具2.安装 TBS3.手机打开USB调试4.打开TBS 检测环境,然后设定TBS调试状态。到这里,当我们扫描完,出现如下的情况就是可以调试的,我们需要在这里做一步操作。扫码显示不支持当前版本的x5内核 或者说请下载x5内核。如果支持就是如下界面。不支持就在手机中进入网址:debugmm.qq.com,安装线上版本。然后我们点击电脑端的启动..

2021-10-26 16:33:23 4902 3

原创 萌芽采集的定时任务如何开启

选择想要采集的线路:这里我已红牛资源为例。在使用定时采集之前记得绑定分类。剩下的就是我们拿到我们需要的地址。使用浏览器的调试功能,按F12就可以调出调试工具。比如我们定时任务为采集本周。去系统,定时任务哪里设置任务。然后我们测试一下是否可以。目前看是没有问题。那么剩下的就是让他自动执行了...

2021-08-27 10:03:38 1403

原创 苹果cms的全解析(第一节大体阐述)

很多影视系统使用了这套cms系统。最近我也有接触。我准备写几篇文章对这套系统进行彻底的一次梳理。希望给使用或者即将使用它的小伙伴有帮助。苹果cms的总体架构就是:先把我总结的图片放在这里。后续我们一一进行分析。总框架:视频层:视频播放流的梳理:苹果系统的两种数据存储形式:文件的形式存储位置在extra文件夹。数据库存储db。至于大家关心的其他设置和订单或者代理模式。都是代码层实现的。我会对每一个细节进行详细的阐述和原理的讲解。让任何一个PHP小白可以迅速的掌...

2021-08-20 21:03:10 4383 2

原创 文件上传漏洞的学习和总结(upload-labs第14到21关)

第14关:上传图片马来达到后门的效果。图片马如何制作呢:在cmd中执行:copy 9.jpg/b+test.php 2.php.jpg

2021-06-11 18:49:58 1795 10

原创 文件上传漏洞的学习和总结(upload-labs)

1.什么是文件上传漏洞:文件上传漏洞是指由于程序员在对用户文件上传部分的控制不足或者处理缺陷,而导致的用户可以越过其本身权限向服务器上上传可执行的动态脚本文件。这里上传的文件可以是木马,病毒,恶意脚本或者WebShell等。“文件上传”本身没有问题,有问题的是文件上传后,服务器怎么处理、解释文件。如果服务器的处理逻辑做的不够安全,则会导致严重的后果。2....

2021-06-11 10:57:53 1958 2

原创 Thinkphp5.1 源码分析第一节(类自动加载初始)

开发的很多项目都使用了thinkphp,所以我准备写一个系列,对thinkphp进行全面的一个分析。希望帮助phper提升自己对框架的使用和理解。最好自己本地查看代码的时候又断点调试的功能。没有的话,可以查看我配置断点调试的文章。对于很多框架都有类的自动加载机制的。我们就对thinkphp进行分析类是如何加载的。我们从入口文件开始分析:我们看到thinkphp的入口文件index.php:通过下图我们看的出来,加载的过程。那么我们想要对自动加载理解的很深入。就需要对loader.php中的注册方

2021-03-03 22:44:05 267 1

原创 Linux中的硬链接和软连接的解析

1.Linux链接概念Linux链接分两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(Symbolic Link)。默认情况下,ln命令产生硬链接。【硬连接】硬连接指通过索引节点来进行连接。在Linux的文件系统中,保存在磁盘分区中的文件不管是什么类型都给它分配一个编号,称为索引节点号(Inode Index)。在Linux中,多个文件名指向同一索引节点是存在的。一般这种连接就是硬连接。硬连接的作用是允许一个文件拥有多个有效路径名,这样用户就可以建立硬连接到重要文件,以防止“

2021-01-05 22:15:03 273

转载 Redis官方自带的性能测试工具redis-benchmark

测试首先我们看一下它的可选参数有哪些?图片来自菜鸟教程~它的格式:redis-benchmark [参数] [参数的值]注意一点就是这个命令是在 redis 的安装目录/usr/local/bin下执行的,而不是 redis 客户端的内部指令。ok,我们来举一个简单的实例:比如我想测试一下100个并发连接,100000条请求。ok,这就是这个测试工具的用法~...

2021-01-05 09:57:06 310

原创 Redis发布订阅和应用场景

发布订阅-应用场景Pub/Sub 从字面上理解就是发布(Publish)与订阅(Subscribe),在Redis中,你可以设定对某一个key值进行消息发布及消息订阅,当一个key值上进行了消息发布后,所有订阅它的客户端都会收到相应的消息。这一功能最明显的用法就是构建实时消息系统,比如普通的即时聊天,群聊等功能。订阅某个channel的信息发布信息到某个channel上简单的应用场景的话,以门户网站为例,当编辑更新了某推荐板块的内容后:CMS发布清除缓存的消息到channe..

2021-01-05 09:51:01 483

转载 Redis的缓存穿透,缓存击穿,缓存雪崩原因和解决方案

一、前言在我们日常的开发中,无不都是使用数据库来进行数据的存储,由于一般的系统任务中通常不会存在高并发的情况,所以这样看起来并没有什么问题,可是一旦涉及大数据量的需求,比如一些商品抢购的情景,或者是主页访问量瞬间较大的时候,单一使用数据库来保存数据的系统会因为面向磁盘,磁盘读/写速度比较慢的问题而存在严重的性能弊端,一瞬间成千上万的请求到来,需要系统在极短的时间内完成成千上万次的读/写操作,这个时候往往不是数据库能够承受的,极其容易造成数据库系统瘫痪,最终导致服务宕机的严重生产问题。为了克服上述的问

2021-01-04 19:41:26 128

转载 Redis主从复制的讲解

和Mysql主从复制的原因一样,Redis虽然读取写入的速度都特别快,但是也会产生读压力特别大的情况。为了分担读压力,Redis支持主从复制,Redis的主从结构可以采用一主多从或者级联结构,Redis主从复制可以根据是否是全量分为全量同步和增量同步。下图为级联结构。全量同步Redis全量复制一般发生在Slave初始化阶段,这时Slave需要将Master上的所有数据都复制一份。具体步骤如下:- 从服务器连接主服务器,发送SYNC命令;- 主服务器接收到SYNC命名后,开始执行BGSAV...

2021-01-04 11:02:23 116

原创 Redis的哨兵模式详解

主从切换技术的方法是:当主服务器宕机后,需要手动把一台从服务器切换为主服务器,这就需要人工干预,费事费力,还会造成一段时间内服务不可用。这不是一种推荐的方式,更多时候,我们优先考虑哨兵模式。一、哨兵模式概述哨兵模式是一种特殊的模式,首先Redis提供了哨兵的命令,哨兵是一个独立的进程,作为进程,它会独立运行。其原理是哨兵通过发送命令,等待Redis服务器响应,从而监控运行的多个Redis实例。Redis哨兵这里的哨兵有两个作用 通过发送命令,让Redis服务器返回监控其运行状.

2021-01-04 10:33:03 1850

原创 Redis事务的详解

Redis事务的概念:  Redis 事务的本质是一组命令的集合。事务支持一次执行多个命令,一个事务中所有命令都会被序列化。在事务执行过程,会按照顺序串行化执行队列中的命令,其他客户端提交的命令请求不会插入到事务执行命令序列中。  总结说:redis事务就是一次性、顺序性、排他性的执行一个队列中的一系列命令。  Redis事务没有隔离级别的概念:  批量操作在发送 EXEC 命令前被放入队列缓存,并不会被实际执行,也就不存在事务内的查询要看到事务里的更新,事务外查询不能看到。Redis不

2021-01-03 10:37:44 135

原创 Redis的持久化方式(RDB和AOF)详解

一、RDB持久化RDB(Redis DataBase):配置文件中对其的相关配置:触发机制:恢复rdb文件:优点:缺点:二、AOF持久化AOF(Append Only File):配置文件中对其的相关配置:恢复aof文件:优点:缺点:Redis中的数据存在内存中肯定是不安全的,所以需要将数据进行持久化操作,防止数据丢失造成的危害。一、RDB持久化RDB(Redis DataBase):在指定时间间隔内将内存中的数据快照集体写入磁盘,也就是.

2021-01-03 10:17:44 480

原创 Redis的乐观锁

我们知道大多数是基于数据版本(version)的记录机制实现的。即为数据增加一个版本标识,在基于数据库表的版本解决方案中,一般是通过为数据库表增加一个”version”字段来实现读取出数据时,将此版本号一同读出,之后更新时,对此版本号加1。此时,将提交数据的版本号与数据库表对应记录的当前版本号进行比对,如果提交的数据版本号大于数据库当前版本号,则予以更新,否则认为是过期数据。redis中可以使用watch命令会监视给定的key,当exec时候如果监视的key从调用watch后发生过变化,则整个事务会失败。也

2021-01-03 10:07:03 391 1

转载 redis配置文件详解

Redis是一个高性能的key-value数据库。 Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。 Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。 Redis支持数据的备份,即master-slave模式的数据备份。 为了更好的使用redis,我们需要详细的了解redis配置文件及相关参数作用。 1 include/path/to/loc...

2021-01-03 09:22:39 185

原创 discuz的简单学习笔记

资料库:https://www.discuz.net/library/library/1.视图模板存放的位置为:template文件夹里面,对应关系大致如下:手机标准版:mobile 文件夹手机版:mobile 文件夹,touch文件夹手机触屏:m 文件夹手机极简版:wml文件夹2.入口文件:定义常量:define('IN_MOBILE',4); define('IN_NEWMOBILE',true);引入核心类文件并初始化require'./source...

2020-12-27 15:47:50 283

原创 记录一次Redis的小事故

因为公司做的业务流量比较大,一直没有太关注Redis的使用情况。昨天就出现了:Redis: OOM command not allowed when used memory > ‘maxmemory’OOM command not allowed when used memory > 'maxmemory'查了一下原因:内存已满,不允许再存数据了。可以通过redis-cli 查看redis的具体信息,使用:info memory命令查看使用情况。我登录我的后台查看的是这样的:

2020-12-17 11:24:46 168

原创 egg项目开发前的一些步骤

1.封装api返回格式扩展当我们对前端的请求返回的格式的时候,经过一个统一的格式返回,会比较省时省力。我们在app的目录下创建extend的目录。然后书写我们的context.js,这样我们的ctx对象就会被我们再次的封装。// app/extend/context.jsmodule.exports = { // 成功提示 apiSuccess(data = '', msg = 'ok', code = 200) { this.body = { msg, data }

2020-12-11 20:36:02 385 1

原创 egg数据库操作(增删改查)

1.数据库的增加(单个和多个)对于上述数据库的迁移我们进行了阐述,今天我们开始对数据库操作进行学习。我们会详尽增删改查的操作,开始我们的正题吧。首先创建我们的模型文件:app/model/user.js然后书写数据库部分:// app / model / user.js'use strict';module.exports = app => { const { STRING, INTEGER, DATE , ENUM} = app.Sequelize; // 配置(重要:一

2020-12-10 09:31:01 4299 4

原创 egg数据库的操作(数据库迁移)

1.配置和创建迁移文件:安装并配置egg-sequelize插件(它会辅助我们将定义好的 Model 对象加载到 app 和 ctx 上)和mysql2模块 :npm install --save egg-sequelize mysql2配置插件和配置信息:在config/plugin.js中引入 egg-sequelize 插件: sequelize :{ enable: true, package: 'egg-sequelize', },在config/con

2020-12-10 09:29:40 893

原创 eggjs的学习和使用

因为大前端概念的火热。最近就想学习一下eggjs的简单使用。书写这个博客,就是简单的记录一下。供后续学习和复习使用。1.安装egg.js全局切换镜像: npm config set registry https://registry.npm.taobao.org安装egg:npm init egg --type=simple下载依赖:npm i启动项目npm run devopen http://localhost:70012.书写第一个接口:如下图:对于各个参数获取的方法书

2020-12-10 09:28:35 847

原创 Python 中的 if __name__ == ‘__main__‘ 到底是什么含义

if __name__ == '__main__'就相当于是 Python模拟的程序入口。Python 本身并没有规定这么写,这只是一种编码习惯。由于模块之间相互引用,不同模块可能都有这样的定义,而入口程序只能有一个。到底哪个入口程序被选中,这取决于__name__的值。所以,if __name__ == '__main__'我们简单的理解就是:如果模块是被直接运行的,则代码块被运行,如果模块是被导入的,则代码块不被运行。...

2020-11-10 10:12:07 1786

原创 Visual Studio Code 调试php插件

了解我的盆友知道,我是十分喜欢vscode的编辑器。但是作为phper有的时候确实需要调试。所以对这款编辑器就需要拓展它的可以调试的功能。那么今天我以当下最新的状态写一下配置的方法。希望给需要的小伙伴一些帮助。1.vscode的软件下载。这一般百度或者搜索引擎都可以下载到。2.安装插件php debug,直接在安装插件的位置输入我截图的名字。下载即可。3.当我们下载完成,一般都有自己的php环境。我这里使用最新的phpstudy为例。因为这个软件的好处就是已经给我们安装了xdebug的.

2020-09-19 18:14:40 1065

原创 Linux的相关知识点(一)

1.Linux常见分支:2.Linux的磁盘目录:3.shell操作计算机原理:4.Linux命令行的含义:5. Linux常用命令:ls :用于查看当前目录下的文件信息.clear:清屏(ctrl+l也是清屏)su:切换用户whoami:查看当前用户id:查看用户信息pwd:当前所在目录位置cd:切换目录命令touch:常见文件...

2020-04-11 19:58:25 802

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除