自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(81)
  • 收藏
  • 关注

原创 pycharm配置git & GitHub

配置.gitignore文件一些文件与项目的实际功能无关,可以忽略它们,有两个方法(来源:本文链接:https://blog.csdn.net/qq_39248703/article/details/87875252;本文链接:https://blog.csdn.net/x541211190/article/details/106052777/)使用pycharm自带的.gitignore file ,点击pycharm – preference – plugins,搜索.ignore后下载安

2021-08-27 22:05:34 392

原创 Mac GitHub ssh免密登录

在GitHub可通过http、ssh等方式生成远程仓库地址,使用ssh时弹出提示解决办法在终端输入cd ~/.ssh,出现no such file or directory说明之前没使用过继续在终端输入ssh-keygen -t rsa -C youremail@youremail.com,-C后是自己的GitHub登录邮箱,随后跟着提示按3次回车输入后即生成新的公钥和秘钥,获取id_rsa.pub的公钥内容在GitHub中点击头像-settings-ssh and gpg keys-new.

2021-08-07 00:57:51 537

原创 GitHub基础操作

操作代码git remote -v 查看当前所有远程地址别名git remote add 别名 远程地址 起别名git push 别名 分支 推送本地分支上的内容到远程仓库git pull 远程库地址别名 远程库分支 将远程仓库内容拉取到本地git clone 远程地址 将远程库内容克隆到本地创建远程仓库右上角 + 下的 new repository,来到创建远程仓库页面,填写名称后依需求选择该库公开或私密,确认后点击 create repository创建。起别名git remote

2021-08-07 00:57:40 231 1

原创 git 入门学习

git概述Git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。Git易于学习,占地面积小,性能极快。它具有廉价的本地库,方便的暂存区域和多个工作流分支等特性。Git远程库是基于网络服务器的远程代码仓库,在局域网里有Gitlab,互联网里国内有Gitee码云,国外有GitHub。Git方便维护版本,可在各个版本间调整、并行,进行项目团队协作。版本控制这是一种记录文件内容变化、以便将来查阅特定版本修订情况的系统,使个人开发过渡到团队协作。版本控制工具集中式:CV

2021-08-04 12:39:42 147

原创 DCL(Data Control Language):管理用户/授权

管理用户添加用户CREATE USER '用户名'@'主机名' IDENTIFIED BY '密码';删除用户DROP USER '用户名'@'主机名';修改用户密码UPDATE USER SET PASSWORD = PASSWORD('新密码') WHERE USER = '用户名';SET PASSWORD FOR '用户名'@'主机名' = PASSWORD('新密码');忘记密码重设管理员身份运行终端无验证方式启动mysql服务:mysqld --skip-grant-tab

2021-06-28 01:20:19 64

原创 mysql 事务

概念如果一个包含多个步骤的业务操作被事务管理,那么这些操作要么同时成功要么同时失败。事务的四大特性原子性:一个事务是不可分割的最小操作单位,要么同时成功,要么同时失败一致性:事务必须使数据库从一个一致性的状态变到另一个一致性的状态,事务操作前后,数据总量不变隔离性:多个事务之间,相互独立持久性:当事务提交或回滚后,即成功执行后,数据库会持久化的保存数据基本操作开启事务start transaction;回滚rollback;– 回到事务执行之前的状态提交commit;– 确认之后就

2021-06-28 01:20:11 68

原创 pymysql模块 & sql 注入

pymysql模块安装pip install pymysql连接数据库import pymysql# 连接数据库,一定要在此处指定使用的数据库conn = pymysql.connect( host='198.1.1.1', port=1234, user='root', passwd='123', db='db6', charset='utf8')# 产生一个游标对象,接收命令的工具cursor = conn.cursor(cursor=p

2021-06-26 01:27:39 170 1

原创 多表查询 多表练习

多表设置练习1.查询所有的课程的名称以及对应的任课老师姓名SELECT course.cname, teacher.tname FROM course INNER JOIN teacher ON course.teacher_id = teacher.tid;2.查询平均成绩大于八十分的同学的姓名和平均成绩SELECT student.sname, t1.avg_score FROM student INNER JOIN ( SELECT student_id,

2021-06-26 01:27:32 214

原创 多表查询 练习

多表设置部门表 – dep(id,dname,loc)职位表 – job(id, jname, description)员工表 – emp(id,ename,job_id,mgr,joindate,salary,bonus,dep_id)工资等级表 – salarygrade(grade,losalary,hisalary)需求1.查询所有员工信息(编号、姓名、工资、职务名称、职务描述)SELECT t1.id,-- 员工编号 t1.ename,-- 员工姓名 t1.salary,--

2021-06-25 01:35:41 272

原创 mysql多表查询

概念拓展:笛卡尔积有两个AB,取这两个集合的所有组成情况。要完成多表查询,需要消除无用的数据。分类内连接查询确定3点,从哪些表中查询,条件是什么,需要查询哪些字段。隐式内连接使用where条件消除无用数据# 查询所有员工信息对应的部门信息select * from emp,dep where emp.'dep_id' = dep.'id';显式内连接语法([]里可省略)select 字段列表 from 表名1 [inner] join 表名2 on 条件;案例select *

2021-06-25 00:43:33 176

原创 DQL(Data Query Language):查询表中的记录

查询语句基础查询 select 字段名1,字段名2...... from 表名; # 如果查询所有则 select * from 表名;语法 select 字段列表 from 表名列表 where 条件列表 group by 分组字段 having 分组之后的条件 order by 排序 limit 分页限定分组查询分组前条件查询:wherewhere 后跟条件运算符> 、< 、<= 、>= 、= 、<>

2021-06-24 01:27:17 167 1

原创 MySQL表关系

表关系表关系的建立需要用到foreign key分类一对多,一个部门有多个员工,一个员工只能对应一个部门多对多,如学生可以对应多个课程,双向对应一对一,如各软件上各人只有单独对应的用户详情表一对多(多对一)实现方式在多的一方建立外键,指向一的一方的主键在创建表时先建被关联表在录入数据时先录入被关联表实现代码以员工表与部门表为例Create table dep( -- 部门表 Id int primary key auto_increment, dep_name varc

2021-06-22 02:05:18 214

原创 SQL约束

概念对表中的数据进行限定,保证数据的正确性、有效性和完整性。分类非空约束:not null唯一约束:unique主键约束:primary key外键约束:foreign key补充默认值:defaultdefault插入数据时可以指定字段create table tw1( id int, name varchar(16) gender enum('female','male') default 'female');非空约束:not null某

2021-06-22 02:05:08 173

原创 DML(Data Manipulation Language):增删改表中数据

添加数据语法insert into 表名(列名1,列名2,…列名n) values(值1,值2,…值n);注意列名要和值一一对应如果表名后不定义列名,则默认按序为所有列添加数据除了数字类型和null,其他类型需要使用引号括起来insert into stu(id,name,age,score,birth,insert_time) values(1,'dobby',20,90.9,'2020-11-11',NULL);insert into stu values(2,'d

2021-06-16 01:52:28 159

原创 MySQL基本数据类型

整数类型分类TINYINT SMALLINT MEDUIMINT INT BIGINT常用int特点整型默认情况下带有符号(-128,+128),+不显示整型括号里的数字不是表示限制位数,id int(6)如果数字没有超过6位,则存全部;如果超出,则在int规定范围里有几位存几位浮点型分类FLOAT DOUBLE DECIMAL存储限制FLOAT/DOUBLE(255,30) #总共255位 小数部分占30位DECIMAL(65,30) #总共65位 小数部

2021-06-16 01:52:03 232

原创 DDL:操作数据库&表

操作数据库(CRUD)创建(C:create)创建数据库:create database database_name;判断不存在再创建数据库:create database if not exists database_name;创建数据库并指定字符集:create database database_name charset='gbk';,create database database_name character set gbk;mysql> create database db1

2021-06-11 01:51:33 154 1

原创 mysql基础

基础概念数据库:文件夹表:文件数据:数据SQL语句以分号(;)结尾,作为结束的标志登录mysql -u root -p 密码mysql -hip -u root -p 连接目标的密码mysql --host=ip --user=root --password= 连接目标的密码退出exitquit注释单行注释: - - 注释内容 或 # 注释内容多行注释:/* 注释 */主要存储引擎innodb:MySQL5.5版本及之后默认的存储引擎,存储数据更加安全myis

2021-06-11 01:51:24 166 1

原创 安装配置mysql & Navicat prenium

前提:Mac,还安装了zsh,之前是bash时下载过mysql,删除过再下载。mysql下载下载地址:https://dev.mysql.com/downloads/mysql/不在乎版本的就直接在这里下dmg格式的文件即可,在乎版本的就去Archives里可以选版本(我下完了才想起是不是要看版本,还在初步学习中就随便了就这个吧……)选这个可以直接下载不登录不注册,比较方便安装这一步可能会有差别,因为这台电脑之前下过mysql。重新安装直接一路同意向下安装即可,最后一步我没有弹出My

2021-06-09 23:34:15 157

原创 Linux 二进制安装和配置 & 进程管理

原理二进制安装也就是编译安装,源码包是开发编写好的程序源代码,但该代码未编译成正常使用的工具。二进制安装可以安装最新的源码包,一些软件官方不提供yum安装,就可以使用编译安装。它的优点是可以自行修改源代码、定制所需功能优先更新,缺点是相对yum复杂太多,一般情况下使用wget、yum。安装流程(以下载nginx为例)下载wget 链接网址下载到本地,rz读取解压tar xf 源码包安装依赖如果不进行这一步,name接下来的过程可能显示不成功yum install -y pcre-de

2021-06-03 01:06:00 1169

原创 Linux yum

Yum是RedHat以及CentOS中的软件包管理器。能够通过互联网下载 .rpm 包并且安装,并可以自动处理依赖性关系,实现简易安装。源仓库查看yum源cd /etc/yum.repos.d/更换、配置源(以阿里云为例)wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repowget -O /etc/yum.repos.d/epel.repo http://mirrors.al

2021-06-03 01:05:40 70

原创 Linux RPM命令

RPM是红帽软件包管理器,一种用于互联网下载包的的打包及安装工具,主要用于安装、卸载、升级和管理软件。选项-i 安装rpm-v 显示安装详细信息-h 显示安装rpm进度-force 强制重新安装-nodeps 忽略依赖关系-U 升级软件-e 卸载安装软件rpm -ivh tree-1.6.0-10.el7.x86_64.rpm强制安装rpm -ivh --force /mnt/Packages/tree-1.5.3-3.el6.x86_64.rpm安装软件包,需要指定软件包绝对

2021-06-03 01:05:26 134

原创 Linux 文件压缩和解压

压缩类型Linux 支持tar.gz和zip,不支持rargzip 的压缩和解压压缩文件并会删除源文件,不能压文件夹 gzip file最大程度压缩 gzip -9 file解压缩 gzip -d filezip 的压缩和解压下载 yum install zip unzip -y压单个文件 zip filename.zip filename压目录 zip -r home.zip /home/压多个文件 zip file.zip filea.txt fileb.txt压多个文件

2021-06-03 01:05:11 76

原创 Linux命令 用户和用户组

用户和用户组信息查看信息查看当前用户信息id username 查看指定用户username信息用户uid,组gid,组别groups[root@centos-linux--1- /]# id rootuid=0(root) gid=0(root) 组=0(root)查看用户信息cat /etc/passwd 用户信息路径root:x:0:0:root:/root:/bin/bash 超级管理员bj:x:1001:1001::/home/bj:/bin/bash 普通用户cut -d

2021-06-03 01:04:53 87

原创 Linux vim

vi相当于Windows系统中的笔记本,vim相当于是vi的升级版本,有高亮显示。vim分为普通模式、编辑模式和命令模式,普通模式可以移动、复制、粘贴等操作;编辑模式可以进行文件编辑,命令模式则是查找、替换、保存等工作模式。普通模式命令光标跳转G 光标跳转至末端gg 光标跳转至顶端Ngg 光标跳转至当前文件内N行$ 光标跳转之当前光标所在行的尾部^ or 0 光标跳转至当前光标所在行的首部翻页Ctrl +f 下翻Ctrl +b 上翻复制与粘贴yy 复制一行6yy 复制当前

2021-06-01 01:19:51 48

原创 文件类型、属性与特殊权限

文件类型与属性文件属性ls -l 或ls -lh 查看ls -l-rw-rw-r--. 1 bj bj 88 5月 31 21:22 file1.txtls -lh #数据大小以kb\gb形式展现dr-xr-xr-x. 5 root root 4.0K 5月 26 16:41 boot- 文件类型rw-rw-r--.权限1 硬链接的次数bj 属主(属于哪个用户)bj 属组(属于哪个组)88 大小5月 31 21:22 修改时间file1.txt 文件名字文件类

2021-06-01 01:19:25 123

原创 Linux 常用命令

命令1 tree /目录/ 树状形式显示如果没有该功能,yum install tree2 cat 查看文本内容cat file 查看文件cat -n file 显示文件有多少行cat -A file 查看文件的特殊符号,比如文件中存在tab键tac file 倒序查看文件cat >> fileName.txt <<EOF 在文件中写入,最后一行写入EOF退出3less, more 分页文本查看less打开文件后,ctrl+b:下翻页,ctrl+f:上翻页

2021-06-01 01:19:09 74

原创 Linux 目录

目录介绍Linux是单根,在终端里/是根路径。目录结构大致如下图来自:https://www.runoob.com/linux/linux-system-contents.html/bin:普通用户的命令 实际上不存在,软链接到usr/bin中/boot:启动相关文件,例如kernel,grub(引导装载程序)/dev:设备信息/etc:配置文件/home:用户的家目录,每个用户都有自己的目录,一般以用户账号命名/root:管理员的家目录/run:程序运行时的记录文件/sbin:

2021-05-30 01:04:20 68

原创 linux shell 基础语法

使用背景Mac上安装parallels desktop配置centOS Linux7做Linux虚拟机,连接finalshell使用。本篇都是在finalshell上的使用记录。bash shell它是一个命令解释器,可以在里面输入命令做交互。使用shell对Linux系统做管理,包括文件管理、权限管理、用户管理、磁盘管理等。在终端输入bash会新开一个窗口,exit退出,退出全部则断开再退则退出终端。如果出现网络波动,可以尝试使用systemctl restart network重启网卡。sh

2021-05-30 01:03:52 93

原创 centOS Linux 快照&修改时间

制作快照需要时+快照,可以恢复到快照或管理快照找到需要恢复的时间节点调整时间在下载安装的时候就已经选择了中国上海时区,可能由于我自己的原因从不关机,所以centOS显示的时间相比正常时间要晚个2天,尝试重新设置时区还是不行,于是使用了笨办法手动设置时间(= =)...

2021-05-30 01:03:33 205 1

原创 分布式 & 增量式

分布式分布式爬虫,搭建一个分布式的机群,然后让机群中的每一台电脑执行同一组程序,让其对同一组资源进行联合且分布的数据爬取。实现方式是scrapy + redis (使用scrapy结合着scrapy-redis组件)。原生scrapy框架无法实现分布式,因为调度器、管道无法被分布式机群共享。scrapy-redis组件可以给原生scrapy框架提供共享的管道和调度器。实现流程1.修改爬虫文件- 1.1 导包:from scrapy_redis.spiders import RedisCrawlS

2021-05-25 00:29:30 575 1

原创 selenium在scrapy中的使用

使用目的爬取网易新闻国内、国际、军事、航空4个版块的新闻。在测试中发现各版块的新闻是动态加载的,如果直接爬取无法获取,使用selenium帮助获取此部分数据。代码spiderimport scrapyfrom selenium import webdriverfrom wangyiPro.items import WangyiproItemclass WangyiSpider(scrapy.Spider): name = 'wangyi' # allowed_domains

2021-05-24 23:41:48 490

原创 CrawlSpider爬取测试

代码spiderimport scrapyfrom scrapy.linkextractors import LinkExtractorfrom scrapy.spiders import CrawlSpider, Rulefrom scmj.items import ScmjItemclass ShiciSpider(CrawlSpider): name = 'shici' # allowed_domains = ['www.xxx.com'] start_urls

2021-05-18 02:32:37 113

原创 CrawlSpider

CrawlSpiderSpider是爬虫文件中爬虫类的父类,CrawlSpider是它的子类。多被用作于专业实现全站数据爬取,将一个页面下所有页码对应的数据进行爬取。创建项目创建scrapy工程: scrapy startproject ProjectName进入工程:cd ProjectName创建crawlspider项目:scrapy genspider -t crawl SpiderName www.xxx.com回顾 创建普通爬虫项目:scrapy genspider Spid

2021-05-18 01:13:54 145

原创 大文件下载测试 & 配置文件常用配置

大文件下载图片、音频等二进制文件在parse()里无法解析,在爬虫文件中爬取数据再提交管道比较麻烦,可以在提交item后在管道类中使用scrapy封装好的下属管道类进行存储。管道类管道需要接收item中的图片名称和地址,然后在管道中请求到图片数据对其持久化存储。其中音频、视频、图片都属于二进制文件,可以通用ImagesPipeline# 提供了数据下载功能from scrapy.pipelines.images import ImagesPipeline from scrapy.pipelin

2021-05-16 01:23:12 2401 2

原创 scrapy 中间件(Middleware)

中间件(Middleware)scrapy的中间件是一个重要概念,作用在于批量拦截请求和响应。scrapy中有2种中间件,爬虫中间件(Spider Middleware)和下载中间件(Downloader Middleware)。在这里只记录下载中间件。下载中间件(Downloader Middleware)下载器中间件是一个挂钩Scrapy的请求/响应处理的框架。这是一个轻量级的低级系统,用于全局更改Scrapy的请求和响应。引用自:https://doc.scrapy.org/en/lates

2021-05-16 01:22:59 760

原创 scrapy 深度爬取

深度爬取爬取的数据没有在同一张页面中(首页数据+详情页数据)scrapy深度爬取后的持久化储存数据需要使用请求传参。首先item是一个局部变量,它不能在另一个方法中调用,所以需要使用请求传参。item对象是唯一对象,每次都需要将解析的数据存储在item中,所以它不能作为全局变量,使用self.item解决作用域的问题,这样做可能不会报错,但存储的数据会出错。实现方式# 请求传参scrapy.Request(url,callback,meta)# meta是一个字典,可以将meta传递给callb

2021-05-14 01:08:56 451

原创 scrapy五大核心组件

组件引擎(Scrapy)用来处理整个系统的数据流处理, 触发事务(框架核心)调度器(Scheduler)用来接受引擎发过来的请求, 压入队列中, 并在引擎再次请求的时候返回. 可以想像成一个URL(抓取网页的网址或者说是链接)的优先队列, 由它来决定下一个要抓取的网址是什么, 同时去除重复的网址下载器(Downloader)用于下载网页内容, 并将网页内容返回给蜘蛛(Scrapy下载器是建立在twisted这个高效的异步模型上的)爬虫(Spiders)爬虫是主要干活的, 用于从特定的网页中

2021-05-13 23:40:14 116

原创 scrapy的手动请求发送实现全站数据爬取

测试目的是使用scrapy爬取段子库单品类全数据。结构scrapy能够访问和数据分析,问题在于怎么去到下一页再次调用。一是手动将分页网址粘贴到start_urls中,一是使用手动发送请求。创建测试工程,创建爬虫文件,settings.py三步修改对段子库中对应页码网址的数据进行爬取解析修改items.py,回到爬虫文件导入模块并提交管道settings.py里将item打开页码递归,限定条件手动请求的方式(get/post)yield scrapy.Re

2021-05-13 00:16:01 171 1

原创 scrapy框架

scrapy简介scrapy是一个专门用于异步爬虫的框架,框架可以理解为是一个被集成了很多功能且具有很强通用性的一个项目模板。安装1 终端输入pip install scrapy2 anaconda - environments - base(root) -search packages搜索scrapy下载,回到pycharm中import后直接下载,或是在preference-project interpreter 按+ 搜索后 install package下载显示成功后在终端输入scr

2021-05-09 00:48:11 262 1

原创 Mac 模拟登陆12306

模拟登录12306结构1.访问首页,将浏览器窗口最大化2.找到并点击账号登录,截取全局图片,获得验证码位置坐标,通过该坐标从全局图片里截取验证码图片3.调用识别平台,返回结果4.拆分坐标,找到对应位置并选中5.填入账号密码,立即登录实现from selenium import webdriverfrom time import sleepfrom PIL import Image # 截图from chaojiying import Chaojiying_Clientfrom s

2021-04-28 12:26:22 136

空空如也

空空如也

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

TA关注的人

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