笔记
D_Ray_
这个作者很懒,什么都没留下…
展开
-
爬虫回顾1
1. 爬虫的合法性探讨 ~ 法不禁止即为许可 ~ robots协议 ~ 隐匿身份 - 高匿商业代理 - TOR(洋葱路由)2. 爬虫的分类 ~ 通用爬虫 ~ 定向爬虫3. 爬虫程序的一般步骤 URL ---> Universal Resource Locator URI ---> Universal Resource Identifier URI = URL + URN 协议://用户原创 2021-08-23 19:05:38 · 473 阅读 · 0 评论 -
多线程与多进程
多线程import timefrom datetime import datetimefrom threading import Thread, current_thread# 程序默认都是单线程(这个默认线程又叫主线程,其他的线程都叫子线程)# Thread类的对象就是线程对象。程序需要多少个子线程,就创建多少个Thread的对象def download(name): print(f'{name}开始下载:{datetime.now()}') print('当前线程:',原创 2021-08-17 23:00:02 · 135 阅读 · 0 评论 -
爬虫-requests和bs4
requests的使用方法# requests:python基于http协议进行网络请求的第三方库import requests"""1. 发送请求requests.get(url, *, headers, params, proxies) - 发送get请求requests.post(url, *, headers, params, proxies) - 发送post请求参数:url - 请求地址(一个网站的网址、接口的地址、图片地址等)headers原创 2021-08-12 09:37:51 · 818 阅读 · 0 评论 -
爬虫-前端基础
前端的三大工具<!-- 1. 网页的技术结构:HTML、CSS、JS(javascript) HTML(结构标准) - 提供网页内容(通过不同的标签提供不同的内容) CSS(样式标准) - 负责网页内容的样式布局 JS(行为标准) - 负责控制网页内容变化 2. HTML - 超文本标记语法 一个网页就是一个html,html代码一般写在可以被浏览器直接解析的html文件中 1)html基本结构:一个html标签里面包含原创 2021-08-10 19:42:28 · 788 阅读 · 0 评论 -
自动化办公2
excel文件的读操作import openpyxl# 1. 加载文件(只能加载后缀是.xlsx文件)wb = openpyxl.load_workbook('files/学生信息.xlsx')# 2. 从工作簿中获取工作表相关信息# 1)获取所有工作表的表名names = wb.sheetnamesprint(names)# 2)获取活跃表sheet1 = wb.activeprint(sheet1)# 3)根据表名获取指定表# 工作簿对象[表名] - 获取指定工作表原创 2021-08-06 19:31:23 · 102 阅读 · 0 评论 -
自动化办公1
邮件自动发送的基本流程# smtplib - 登录邮箱;发送邮件import smtplibfrom email.mime.multipart import MIMEMultipartfrom email.header import Headerfrom email.mime.text import MIMEText# 第一步:登录邮箱# 1. 连接邮箱服务器# smtplib.SMTP_SSL(服务器地址, 邮箱服务端口) - 连接邮箱服务器并且返回一个连接对象conne原创 2021-08-06 09:40:17 · 171 阅读 · 0 评论 -
面向对象进阶
对象属性的增删改查class Student: def __init__(self, name, age=18, study_id='000'): self.name = name self.age = age self.study_id = study_id # 在当前类的对象被打印的时候自动调用,并且将这个方法的返回值作为打印结果(返回值必须是字符串) def __repr__(self): return f'&原创 2021-08-04 20:06:44 · 72 阅读 · 0 评论 -
面向对象基础
编程思想# 编程思想:面向过程编程(穷人思想)、函数式编程(小资)、面向对象编程(富豪)# 编程实现功能:1*2*3*..*10# 面向过程编程:s = 1for x in range(1, 11): s *= xprint(s)# 函数式编程编程:from math import factorialprint(factorial(10))class Math: @staticmethod def factorial(num: int):原创 2021-08-03 19:44:32 · 124 阅读 · 0 评论 -
正则表达式
匹配符号"""1. re模块re模块是python提供的专门用支持正则表达式的一个模块fullmatch函数:fullmatch(正则表达式, 字符串) - 让正则表达式和指定字符串进行完全匹配,如果匹配失败返回None;""""""2. 正则语法正则表达式 - 正则表达式是一个让字符串复杂问题变得简单的工具。写正则表达式的主要工作:用正则符号描述清楚相关字符串的规则。python正则比表示方式:r'正则表达式'js的正则:/正则表达式/"""from re impo原创 2021-08-02 23:39:49 · 431 阅读 · 0 评论 -
json和异常捕获
json数据# 1.什么是json"""json是一种通用的数据格式。"""# 2. json是一种什么样的数据格式(通用)"""一个json有且只有一个数据;唯一的这个数据必须是json支持的类型的数据。json支持的类型:数字 - 包含所有的整数和小数,表示的时候直接写,例如:900, -12, 0.34, 3e4 字符串 - 用双引号引起来的数据(支持转义字符),例如:"abc", "试试234", "abc\n123"布尔 -原创 2021-08-01 20:12:32 · 514 阅读 · 0 评论 -
常用系统模块和文件操作
time模块import time"""1. 时间戳用指定时间到1970年1月1日0时0分0秒(格林威治时间)的时间差(单位是秒)来表示时间的方式就是时间戳注:格林威治时间和北京时间有8个小时的时差4个字节(时间戳存储时间)16个字节(用字符串存储时间)"""# 1. time.time() - 获取当前时间print(time.time()) # 1627611728.5696352# 2.# time.localtime() - 获取当前时间的本地时原创 2021-07-30 23:39:31 · 87 阅读 · 0 评论 -
迭代器和生成器
迭代器什么是迭代器(iter)迭代器是容器型数据类型,可以同时保存多个数据;可以被遍历;也可以转换成列表和元组打印迭代器的时候无法打印里面的元素;迭代器不支持len操作如果需要迭代器中的元素,必须将元素从迭代器中取出,而且一旦取出元素,这个元素在迭代器中就不存在了。怎么创建迭代器方式一:通过iter将其他序列转换成迭代器方式二:创建生成器对象(生成器可以看成是一种特殊的迭代器)iter1 = iter('abc')print(iter1)# print(len(iter1))原创 2021-07-30 22:47:43 · 91 阅读 · 0 评论 -
实参高阶函数
匿名函数语法:函数名 = lambda 参数列表: 返回值相当于:def 函数名(参数列表):return 返回值注意:1)匿名函数只能实现用一句代码就可以完成功能的函数2)匿名函数在调用的时候和普通函数没有区别3)匿名函数的参数不能使用冒号语法来说明类型sum1 = lambda num1, num2=10: num1 + num2print(sum1(10, 20))print(sum1(num1=100, num2=200))print(sum1(5))# 练习:定义一原创 2021-07-28 21:41:51 · 169 阅读 · 0 评论 -
字符串常用方法
str.title() - 返回"标题化"的字符串,就是说所有单词的首个字母转化为大写,其余字母均为小写str_ = 'this is a girl'print(str_.title()) # This Is A Girlstr.upper() - 将字符串中的小写字母转为大写字母 str_ = 'fffffff 66 pp' print(str_.lower()) # FFFFFFF 66 PP str.lower() - 将字符串中的大写的字符转换为小写s..原创 2021-07-26 20:07:46 · 206 阅读 · 0 评论 -
Python基础之函数的参数、返回值变量、匿名函数
1. 函数的参数# 重点:位置参数和关键字参数、参数默认值# 一般:参数类型说明和带*的不定长# 了解:**的不定长1.1 位置参数和关键字参数 - 根据函数调用的时候实参的传递方式分类"""1)位置参数 - 让实参和形参在位置上一一对应2)关键字参数 - 调用的时候在实参前加'形参名='的结构3)位置参数和关键字参数可以一起用:位置参数必须在关键字参数的前面"""def func1(a, b, c): print(f'a:{a}, b:{b}, c:{c}'原创 2021-03-16 09:49:04 · 302 阅读 · 0 评论 -
Python基础之函数
1.函数1)没有函数的情况下# 没有函数的问题:# 1.相同的功能需要使用多次的时候对应的代码需要写多遍# 2.如果功能发生改变,需要修改多处代码# sum1 = 0# for x in range(1, 101):# sum1 += x# print(sum1)## sum1 = 0# for x in range(2, 56):# sum1 += x# print(sum1)def sum1(s, e): s = 0 for x in r原创 2021-03-13 10:32:21 · 98 阅读 · 0 评论 -
Python之字符串、计算机进制
1.字符串1)什么是字符串(str)字符是容器型数据类型;将’’、""、""""""、’’’’’'作为容器的标志,里面的每个符号就是字符串的元素不可变;有序元素:字符串的元素就是引号中的每一个基本符号。元素又叫字符,字符又分为普通字符和转义字符两种。str1 = ',groiveoimem'str2 = "er,kovueij"str3 = """abc123qwasjdf阿斯顿发"""str4 = '''dkhak askdhf双方都'''print(type(str3),原创 2021-03-11 19:34:20 · 798 阅读 · 1 评论 -
常见4种容器使用总结
列表字典元组集合类型名listdicttupleset容器标志[元素1, 元素2,…]{key1:value1, key2:value2,…}(元素1,元素2,…){元素1,元素2,…}容器的特点可变;有序可变;无序不可变;有序可变;无序增删改查1. 增:append、insert2. 删:del、remove、pop3. 改:列表[下标] = 值4. 查:列表[下标]、列表[开始下标: 结束下标:步长]、遍历1. 增:字典[key]=...原创 2021-03-10 19:48:55 · 326 阅读 · 0 评论 -
Python基础之集合(set)
Python从入门到精通Day81.集合(set)1)什么是集合(set)集合是容器型数据类型;将{}作为容器的标志,多个元素之间用逗号隔开:{元素1, 元素2, 元素3, …}集合是可变的;集合是无序的元素:必须是不可变的数据;元素是唯一的# 空集合: {}不是空集合,是空字典set1 = set()print(type(set1), len(set1)) # <class 'set'> 0# 集合是无序的print({1, 2, 3} == {3, 1, 2})原创 2021-03-10 19:46:11 · 272 阅读 · 0 评论 -
Python基础之列表函数、元组、字典
Python从入门到精通Day71.列表函数1)列表.clear() - 清空列表(删除列表中所有的元素)nums = [10, 2, 4, 5]nums.clear()print(nums) # []# 不推荐# nums = [10, 2, 4, 5]# nums = []# print(nums)2)列表.copy() - 复制原列表产生一个一模一样的新列表,将新列表返回列表[:]、列表+[]、列表*1的功能和列表.copy()的功能一模一样id(变量)原创 2021-03-10 17:57:19 · 457 阅读 · 0 评论 -
Python基础之列表的增删改查、列表的数学运算及比较运算、相关函数:max、min、sorted、sum、list、len、set
Python从入门到精通Day61.什么是列表(list)列表是容器型数据类型; 将[]作为容器标志,里面多个数据用逗号隔开:[元素1, 元素2, 元素3,…]列表是可变(可变指的是元素的个数可变;元素的值变量;元素的顺序可变)、列表是有序的(每个元素都有一个表示元素在列表中位置的序号)元素(容器中的每个独立的数据就是元素):没有要求(任何类型的数据都可以作为列表的元素)students = ['one', 'two', 'three', 'four', 'five']names = []原创 2021-03-08 20:00:54 · 387 阅读 · 0 评论 -
Python之数据类型、数据模块
Python从入门到精通Day51.数字类型python中数字对应的类型有4种:int、float、bool、complex(复数)注意:浮点数有的时候表示的时候不准确结果是约等于的值,这是计算机本身在存储浮点数的问题1.65 -> 1.6499999999999 1.65 -> 1.650000000001bool类型是一种特殊的整型,True本质就是1、False本质就是0# 1. complex(复数) - 由实部和虚部组成的数就是复数# 结构:a + bj原创 2021-03-05 19:46:56 · 159 阅读 · 0 评论 -
Python基础之if多分支、if嵌套、for循环、range函数、while循环、for循环和while循环的选择、continue和break、使用while循环的套路(死循环)、else
Python从入门到精通Day51.if多分支根据不同的条件做不一样的事情,但是要求条件之间存在:其中某一个条件成立了,另外的其他条件一定不会成立语法:if 条件语句1:代码段1elif 条件语句2:代码段2elif 条件语句3:代码段3…else:代码段N# 根据分数对成绩进行评级:A(90 ~ 100)、B(80 ~ 89)、C(60~79)、D(60分以下),分数是有效的百分制分数score = 30# 方法一:if 90 <= score <= 100:原创 2021-03-05 19:28:56 · 579 阅读 · 0 评论 -
Python基础之MarkDown语法
MarkDown语法1.标题:在一行文字前加1到6标题1标题2标题3标题4标题5标题62.引用1)代码引用:三个反引号开头,三个反引号结尾,中间部分是代码。每行开头的三个反引号的后面可以设置代码的编程语言。print('Hello World!')2)行内应用:把引用内容放在两个反引号之间take3)单行引用:> 后面跟引用内容,几个>几个竖杠学科pythonjavac运动篮球乒乓3.图片:!+[]+(本地图片路径)4.超链接:[显示可以原创 2021-03-02 20:06:13 · 686 阅读 · 0 评论 -
Python基础之定义变量、运算符、if语句
Python从入门到精通Day21.定义变量1)内存大小的单位位(bit)1字节(byte) = 8位1kb = 1024字节1Mb = 1024kb1G = 1024Mb1T = 1024G2)定义变量和重新给变量赋值的底层原理:定义变量的时候会先根据数据去申请内存,内存申请多大看数据需要多大。然后将数据保存对应的内存中,最后将内存空间和变量进行关联。重新给变量赋值的时候,会重新根据新的数据申请新的内存,然后将新的数据存储到新的内存中,最后将新的内原创 2021-03-03 23:28:22 · 960 阅读 · 1 评论 -
Python基础之注释、语句、标识符、关键字、常用数据和对应数据类型、打印和输出、变量
Python从基础到入门Day11.C语言与Python代码执行的流程图2.Python的兼容性3.Pycharm的部分操作设置1、设置主题字体2、文件头部注释3、文件删除和重命名4、快捷键# ctr + s - 保存# ctr + c - 复制、拷贝# ctr + v - 粘贴# ctr + x - 剪切# ctr + z - 撤销# ctr + y / ctr + shift + z - 反撤销# ctr + / - 添加或者原创 2021-03-02 20:37:47 · 367 阅读 · 0 评论