自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 数据库day06

1. 将数据写入excel文件中import openpyxlimport pymysqlfrom openpyxl.cell import Cellfrom openpyxl.styles import Alignment, Fontfrom pymysql.cursors import Cursor# 将数据写入excel文件中"""工资簿 - workbook - 一个excel文件工作表 - sheet单元格 - cell - 行和列交汇的位置,保存数据"""wb

2022-05-29 19:56:54 209

原创 数据库day05

1. 连接MySQL数据库插入数据经验:一定不能够使用字符串拼接或者格式化等方式组装动态的SQL,否则就会直面SQL注射攻击。import pymysqlfrom pymysql.cursors import Cursorno = int(input('编号: '))name = input('名称: ')location = input('所在地: ')# 1. 创建连接对象conn = pymysql.connect(host='localhost', port=3306,

2022-05-29 19:48:23 202

原创 数据库day04

-- 如果存在就删除名为hrs的数据库drop database if exists `hrs`;-- 创建名为hrs的数据库并指定默认的字符集create database `hrs` default charset utf8mb4;-- 切换到hrs数据库use `hrs`;-- 创建部门表create table `tb_dept`(`dno` int not null comment '编号',`dname` varchar(10) not null comment '名称

2022-05-26 20:55:19 323

原创 数据库day03

1. 查询所有学生的所有信息select * from tb_student;select stu_id, stu_name, stu_sex, stu_birth, stu_addr, col_id from tb_student;2. 查询学生的学号、姓名和籍贯(投影)select stu_id, stu_name, stu_addr from tb_student;3. 查询

2022-05-25 20:59:16 4884 1

原创 数据库day02

1. 删除名为school的数据库drop database if exists `school`;2. 创建名为school的数据库create database `school` default character set utf8mb4;3. 切换到school数据库use `school`;4. 创建学院表create table `tb_college`(`col_id` integer not null auto_increment comment '编号',`col_

2022-05-25 20:31:09 169

原创 数据库day01

1. MySQL命令1.1 显示所有的数据库显示所有的数据库:show databases;1.2 显示所有的字符集显示所有的字符集:show character set;1.3 切换数据库切换数据库:use school;1.4 显示所有表显示所有表:show tables;1.5 获取帮助获取帮助:help。2. SQLSQL:Structured Query Language。DDL:Data Definition Language - create / drop / alt

2022-05-23 19:33:39 162

原创 Spider10多线程

1. b站数据爬虫from selenium.webdriver import Chrome, ChromeOptionsimport timefrom bs4 import BeautifulSoupfrom re import searchfrom concurrent.futures import ThreadPoolExecutorimport csvfrom queue import Queueoptions = ChromeOptions()options.add_exper

2022-05-20 19:06:43 286

原创 Spider09队列和线程池

1. 作业豆瓣电影import requestsfrom threading import Threadimport csvfrom bs4 import BeautifulSoupheaders = { 'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.51 Safari/537.36'}de

2022-05-19 16:51:39 142

原创 Spider08多线程基础

1. 爬虫流程获取网页数据 --> 解析数据 --> 保存数据。1)第一步:确定目标网页;2)第二步:找数据接口:​ a. 有数据接口 --> 直接使用requests对数据接口发送请求 -> 网页数据获取完成​ b. 没有数据接口 --> 第三步3)第三步:用requests直接对网页发送请求(可能涉及到添加user-agent或者添加cookie):a. 请求结果中有目标数据 --> 网页数据获取完成b. 请求结果中没有目标数据 --> 第

2022-05-18 22:04:16 230

原创 Spider07selenium进阶登录反爬

1. 选项卡切换from selenium.webdriver import Chromefrom selenium.webdriver.common.keys import Keysimport timefrom bs4 import BeautifulSoup1.1 创建浏览器对象b = Chrome()1.2 打开网页b.get('https://www.cnki.net/')1.3 搜索论文search = b.find_element_by_id('txt_SearchT

2022-05-17 20:59:23 494

原创 Spider06selenium

1. selenium打开网页导入所需包from selenium.webdriver import Chromeimport timeimport refrom bs4 import BeautifulSoupfrom lxml import etree1.1 创建浏览器对象b = Chrome()1.2 打开网页打开网页(需要爬取网页数据的网页)。b.get('https://movie.douban.com/top250')# 等待time.sleep(1)1.3

2022-05-17 20:57:43 145

原创 Spider05

1. Xpath解析1.1 XPthXPth:是一门在XML文档中查找内容的语言。XML文档:存储和传输数据的。 --> json数据。1.2 json和XML区别1)json数据对机器友好型语言。2)XML对人类友好型语言。1.3 XPath根据什么在XML查找内容1)XML文档中有很多节点。例如:根节点(文档节点)、属性节点、内容节点、元素节点等。2)xml文档是树形结构。xml_str = """<supermarket> --> 根节点(文档节点)

2022-05-17 20:50:54 96

原创 Spider04

1. BeautifulSoup4使用from bs4 import BeautifulSouphtml = """<html><head><title>The Dormouse's story</title></head><body><p class="title" name="dromouse"><b>The Dormouse's story</b></p><p c

2022-05-17 20:33:42 134

原创 Spider03

1. html文字标签1)标题标签:自带加粗、自带换行(h1~h6)<h1>我是一级标签</h1><h2>我是二级标签</h2><h3>我是三级标签</h3><h4>我是四级标签</h4><h5>我是五级标签</h5><h6>我是六级标签</h6>2)段落标签:p:自带换行<p>大熊猫(学名:Ailuropoda melanoleuc

2022-05-16 22:30:18 199

原创 day20-Spider02

1. 批量下载图片作业import requestsimport jsonfor x in range(1, 10): URL = 'https://api.ixiaowai.cn/api/api.php?return=json' resp = requests.get(url=URL) resp.encoding = 'utf-8-sig' # print(resp.text,type(resp.text)) # 序列化 data = json.lo

2022-05-10 19:16:15 386

原创 day19-Spider01

1. 爬虫简介数据分析、数据挖掘,先分析再挖掘(前提:有数据)。数据来源:1. 数据库;2. 爬虫;3. 其他平台(API)。1.1 爬虫的概念Spider:蜘蛛 --> 爬虫:可以在互联网的任意位置获取数据。爬虫,别名(网页蜘蛛、蠕虫),学名:网络数据采集。根据程序员的自定义规则(想法)在互联网中自动的爬取数据(图片、音频、视频、文字等都叫做数据)。1.2 爬虫学习流程1.2.1 爬虫对谁做操作?表面:爬虫对网页做操作;深层次:爬虫对服务器做操作。1.2.2 对网页操作1

2022-05-10 19:15:30 505

原创 继承json和csv文件操作作业

作业1:将酒店数据按照地区分类放入每个地区对应的csv文件中:import csv# 1). 读取文件reader = csv.DictReader(open('files/北京高档酒店价格分析.csv', encoding='utf-8', newline=''))# print(list(reader))# 2). 获取键keys = list(list(reader)[0].keys())# print(keys)# 3).遍历到每一个数据(字典),判断是哪个区,然后写入对应的文

2022-05-09 19:26:58 408

原创 继承json和csv文件操作

1. 继承1.1 继承继承 - 让子类直接拥有父类的属性和方法。子类 - 继承者;父类 - 被继承者;关系:父类拥有的东西,子类都有,但是子类除了有父类的东西以外还有一些额外特有的东西。class Person: def __init__(self): self.name = '小明' self.age = 18 self.gender = '男' def eat(self): print('吃饭'

2022-05-07 18:35:17 540

原创 面向对象基础

1. 编程思想编程思想:程序员在面对一个问题的时候首先想到的解决这个问题的想法。1.1 面向过程编程面向过程编程 - 会基本语法和逻辑。1.2 函数式编程函数式编程 - 会基本语法和逻辑还需要函数。1.3 面向对象编程面向对象编程 - 会基本语法和逻辑、函数 还需要类和对象。# 练习:计算8的阶乘s = 1for x in range(1,9): s *= xprint(s)import mathprint(math.factorial(8))

2022-05-06 19:25:48 136

原创 正则表达式

1. 认识正则表达式from re import fullmatch,search正则表达式: 解决字符串问题的工具(让复杂的字符串问题变得简单的一个工具)。问题:验证输入的手机号是否合法abc - 不是123 - 不是12345678901 - 不是13345678905 - 合法133456789900 - 不合法# 方法1:def is_tel_num(tel_no:str): if len(tel_no) != 11: retur

2022-05-05 20:15:32 697

原创 文件夹整理和登录操作系统作业

1. 文件夹整理import osfrom shutil import movedef clear_up_folder(path:str): """ 整理文件夹,将相同后缀的文件放入指定文件夹中 :param path: 需要整理的文件夹路径 :return: None """ for x in os.listdir(path): x_path = os.path.join(path,x) if os.path.isfi

2022-04-30 13:16:08 461

原创 系统模块和文件操作

1. time模块提前导入:from time import *1.1 time()time() - 获取当前时间的时间戳。1.2 localtime()localtime() - 获取本地的当前时间,回值是结构体时间。localtime(时间戳) - 将时间戳转换成本地时间对应的结构体时间。t1 = localtime()print(t1)通过结构体时间获取具体的时间信息:时间对象.时间属性名。print('年:',t1.tm_year)1.3 将字符串时间

2022-04-28 20:50:14 122

原创 python包和模块

1. 模块1.1 什么是模块python中一个py文件就是一个模块。1.2 怎么在一个模块中使用另一个模块的内容1)前提:被使用的模块的模块名(py文件的文件名)必须符合变量名的要求(是标识符,不是关键字);2)能被使用的内容:所有的全局变量;3)怎么用:使用别的模块中的内容前,必须先导入模块。1.3 导入模块1)import 模块名 - 导入指定模块;导入后可以通过’模块名.xxx’的方式使用这个模块中所有的全局变量;import testprint(test.a)test.fu

2022-04-27 19:28:43 463

原创 迭代器生成器装饰器

1. 迭代器1.1 什么是迭代器(iter)1)迭代器是容器;程序中无法直接创建一个迭代器,只能将别的序列转换成迭代器。2)特点:打印迭代器无法查看所有的元素、也无法获取元素的个数;获取元素的时候每次只能获取最前面的元素,而且元素取一个就少一个。i1 = iter('abc123')print(i1) # <str_iterator object at 0x000001E2A9C78460># print(len(i1)) # 报错!i2 = iter([10,20

2022-04-26 17:47:57 337 1

原创 Python函数进阶

1. 匿名函数1.1 匿名函数没有名字的函数。'''语法:函数名 = lambda 形参列表:返回值相当于def 函数名(形参列表): return 返回值'''1.2 注意1)匿名函数的本质还是函数;2)普通函数中的绝大部分内容匿名函数都支持1.3 练习练习1:求任意两个数据的和。# 普通函数def sum1(num1: int, num2= 2): return num1 + num2# 匿名函数x = lambda num1,num2= 2:

2022-04-25 19:52:17 179

原创 Python函数基础

1. 函数的定义1.1 函数的概念函数就是实现某一特定功能的代码的封装。函数就是把实现某一个功能的代码打成一个包,以后再需要这段代码对应的功能的时候不需要再写这段代码,而是直接调用封装这段代码的函数。1.2 函数分类1)系统函数(别人造好的机器):python自带的函数,例如:print、input、type、max、min、sorted等;2)自定义函数(自己造的机器):由程序员自己创建的函数。1.3 定义/创建函数1.3.1 语法'''def 函数名(形参列表): 函数说明

2022-04-24 20:53:33 210

原创 Python字符串

1. 字符串相关函数1.1 len1.2 strstr(数据):所有的数据都可以转换成字符串;转换的时候是在数据的打印值外面加引号。num = 123# srr(sum) - # '123'num2 = 1.23# str(num2) - # '1.23'list1 = [10,20,30]print(list1) # [10, 20, 30]# str(list1) - # '[10, 20, 30]'list2 = ["abc",10,20]print(l

2022-04-22 22:48:43 653

原创 元组集合和字符串

1. 元组和集合1.1 元组1.1.1 什么是元组(tuple)1)容器;将()作为容器的标志,里面多个元素用逗号隔开:(元素1,元素2,元素3,…);2)不可变的(不支持增删改);有序的(支持下标操作);3)元素:任何数据。# 空元组t1 = ()# 只有一个元素的元组(重点) - 唯一的这个元素后必须加逗号t2 = (100)print(t2,type(t2)) # 100 <class 'int'>t3= (100,)print(t3,type(t3)

2022-04-21 18:55:30 296

原创 字典元组和集合

1. 认识字典用一个容器同时保存多个数据的时候的建议:如果多个数据的意义相同用列表,如果多个数据的意义不同用字典。stu = ['小明',18,175,75,90,'男']print(stu[1])stu = {'name':'小明','age':'45','height':175,'weigjt':75,'score':90,'gender':'男'}print(stu['age'])1.1 什么是字典(dict)1)字典是容器型数据类型:将{}作为容器的标志,里面多个元素用逗号隔开

2022-04-20 20:04:42 323

原创 Python列表进阶

1. 列表相关操作1.1 数学运算符(+、*)1)列表1 + 列表2:将两个列表合并产生一个新的列表。print([10,20,30]+[100,200]) # [10, 20, 30, 100, 200]list1 = [10,20,30]list2 = [100,200]result = list1 + list2print(result) # [10, 20, 30, 100, 200]print(list1,list2) # [10, 20, 30] [

2022-04-19 19:52:28 918

原创 Python列表

1. 认识列表1.1 什么是列表1)列表是容器型数据类型(可以同时保存多个数据);2)将中括号([])作为容器的标志,里面多个元素(一个容器中逗号隔开的每个独立的数据)用逗号隔开:[元素1,元素2,元素3];3)列表是可变的:可变指的是元素的个数、元素的值和元素的顺序可变;列表支持增删改;列表是有序的:列表支持下标操作。4)列表的元素:任何类型的数据都可以作为列表的元素。1.2 列表中的元素类型1)同一个列表中的元素类型可以相同list2 = [78,45,25,66]print(lis

2022-04-19 19:51:47 1413

原创 while循环和循环关键字

1. while循环1.1while1.1.1 语法'''while 条件语句: 循环体'''1.1.2 说明1)while:关键字;固定写法;2)条件语句:和if中的条件语句的要求一样;3)冒号 : 固定写法;4)循环体:结构上和while保持一个缩进的一条或者多条语句;逻辑上,需要重复执行的代码。1.1.3 执行过程判断条件语句是否为True,如果是就执行循环体,否则循环就结束。流程图:x = 0while x < 5: print('==

2022-04-16 14:53:26 1093

原创 Python流程控制

1. 流程控制控制代码执行的方式。根据代码执行方式不同,将代码分为三种结构:1)顺序结构(默认)代码从上往下按顺序依次执行,并且每条语句只执行一次。a = 10print(a)print(11)print('22')2) 分支结构(if语句)根据条件选择执行代码。age = 25if age >= 18: print('成年')else: print('未成年')3)循环结构(for、while)让代码重复执行(代码只写一遍,执行多次)。for x i

2022-04-14 20:18:57 1170

原创 变量和运算符

1. 变量1.1 感受变量是有用的# 打印5次:'默默的在背后望着你的背影,当你危险时,我会毫不犹豫的从天而降。哪怕双腿以被大地震的生疼,我一样会咬紧牙关,再次跳向对手,抛出手中的战矛。哪怕身死我也要你活着…'print('默默的在背后望着你的背影,当你危险时,我会毫不犹豫的从天而降。哪怕双腿以被大地震的生疼,我一样会咬紧牙关,再次跳向对手,抛出手中的战矛。哪怕身死我也要你活着…')print('默默的在背后望着你的背影,当你危险时,我会毫不犹豫的从天而降。哪怕双腿以被大地震的生疼,我一样会咬紧牙

2022-04-13 22:37:44 216

原创 基础语法和工具函数

1. 常用快捷键快捷键功能ctr + /添加或取消注释ctr + c复制ctr + v粘贴ctr + x剪切ctr + s保存ctr + f搜索(查找)ctr + a全选ctr + z撤销ctr + shift + z反撤销(后悔撤销使用)按shift键点鼠标选中范围按alt键点鼠标多光标操作2. 基础语法2.1 注释注释是代码中不会被翻译成机器码的部分(注释的存在不会影响程序的功能)。2.1

2022-04-12 20:20:44 365

空空如也

空空如也

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

TA关注的人

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