自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 资源 (1)
  • 收藏
  • 关注

原创 ensp安装

ensp安装

2022-07-12 18:05:07 1293

原创 Github操作出现Password for ‘httpsgithub.com‘无法输入问题

Github操作出现Password for ‘https://github.com’:无法输入问题hexo generate -d 这个命令以后会出现以下密码无法输入的情况解决方法第一步:复制github存储仓库的SSH第二步:将配置文件config.yml中repo改为刚刚复制的SSH第三步:输入ssh-keygen -t rsa -b 2048 -C "-------"得到密钥,并找到存放它的文件位置第五步:粘贴到GitHub对应的位置,生成密钥此时便可以成功部署!可参照此

2021-09-11 17:49:31 13748

原创 爬虫回顾1

1. 爬虫的合法性探讨 ~ 法不禁止即为许可 ~ robots协议 ~ 隐匿身份 - 高匿商业代理 - TOR(洋葱路由)2. 爬虫的分类 ~ 通用爬虫 ~ 定向爬虫3. 爬虫程序的一般步骤 URL ---> Universal Resource Locator URI ---> Universal Resource Identifier URI = URL + URN 协议://用户

2021-08-23 19:05:38 526

原创 爬虫的实战

多线程多进程总结import timedef func1(num): time.sleep(3) print(f'子线程任务{num}')# 方案一:直接使用多线程 - 用于需要同时执行的任务个数确定并且量小(比如,一两个任务)from threading import Thread# 1. 直接使用Thread# t = Thread(target=func1, args=(1,))# t.start()# # join中的timeout是设置最长等待时间,如果

2021-08-20 17:30:18 693

原创 线程池和进程池

线程队列from queue import Queue# queue模块中的队列,只能保存一般数据或者多线程中产生的数据(多用于多线程,自带线程安全属性),但是不能用来存储多进程中产生的数据。# 队列数据结构:是容器,先进先出if __name__ == '__main__': # 1. 队列基本用法 # 1) 创建队列对象: Queue() q = Queue() # 2) 添加数据(进): 队列对象.put(数据) q.put(100) q.p

2021-08-18 17:21:20 233

原创 多线程与多进程

多线程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 160

原创 xpath

xpath和xml数据格式# 1. 专业术语"""树:整个html或xml结构节点:html中的每个标签,xml中标签就是节点根节点:树的第一个节点,html的根节点就是html标签属性:节点属性(html中就是标签属性)"""# 2.xml数据格式# json数据和xml数据是两种通用的数据格式,用于不同语言之间进行数据交流"""将一个超市的商品数据进行传输:json:{ "name": "永辉超市", "address": "肖家河大厦", "goods

2021-08-16 19:29:13 152

原创 爬瓜子二手车(json接口)

爬瓜子二手车(json接口)"""创建时间: 2021/8/16 上午9:28开发者: 酒坛坛儿Good Good Study, Day Day up !"""import requestsfrom selenium.webdriver import Chromedef get_net_data(): for page in range(1, 14): url = f'https://mapi.guazi.com/car-source/carList/pcList

2021-08-16 19:24:29 910

原创 爬虫-selenium进阶

前进后退和切换选项卡# ==============1.前进和后退 ================# b = Chrome()# b.get('https://www.baidu.com')# time.sleep(1)# b.get('https://www.runoob.com')# time.sleep(1)# b.get('https://movie.douban.com/top250')# time.sleep(1)# b.back()# time.sleep(1)# b.

2021-08-15 17:28:05 159

原创 爬51job

爬51job一import timefrom selenium.webdriver import Chromefrom selenium.webdriver.common.keys import Keysimport csvfrom bs4 import BeautifulSoupb = Chrome()b_get = b.get('https://www.51job.com/')# 获取标签(输入框)search_input = b.find_element_by_id('kwds

2021-08-15 17:20:36 169

原创 爬虫-代理和selenium

使用代理ip进入网页import requests# 1. 获取蘑菇代理中的代理IPdef get_ip(): response = requests.get('http://piping.mogumiao.com/proxy/api/get_ip_bs?appKey=775206edf3dc4329ba04568b75a66a30&count=4&expiryDate=0&format=2&newLine=3') if response.text[

2021-08-15 14:43:51 187

原创 爬豆瓣电影

爬豆瓣电影一import requestsfrom bs4 import BeautifulSoupimport csvheaders = { 'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_13_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/92.0.4515.131 Safari/537.36'}f = open('fiels/douban250.csv', 'w

2021-08-15 14:35:11 143

原创 爬虫-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 966

原创 爬虫-前端基础

前端的三大工具<!-- 1. 网页的技术结构:HTML、CSS、JS(javascript) HTML(结构标准) - 提供网页内容(通过不同的标签提供不同的内容) CSS(样式标准) - 负责网页内容的样式布局 JS(行为标准) - 负责控制网页内容变化 2. HTML - 超文本标记语法 一个网页就是一个html,html代码一般写在可以被浏览器直接解析的html文件中 1)html基本结构:一个html标签里面包含

2021-08-10 19:42:28 844

原创 自动化办公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 128

原创 自动化办公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 205

原创 面向对象进阶

对象属性的增删改查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 99

原创 面向对象基础

编程思想# 编程思想:面向过程编程(穷人思想)、函数式编程(小资)、面向对象编程(富豪)# 编程实现功能: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 148

原创 正则表达式

匹配符号"""1. re模块re模块是python提供的专门用支持正则表达式的一个模块fullmatch函数:fullmatch(正则表达式, 字符串) - 让正则表达式和指定字符串进行完全匹配,如果匹配失败返回None;""""""2. 正则语法正则表达式 - 正则表达式是一个让字符串复杂问题变得简单的工具。写正则表达式的主要工作:用正则符号描述清楚相关字符串的规则。python正则比表示方式:r'正则表达式'js的正则:/正则表达式/"""from re impo

2021-08-02 23:39:49 460

原创 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 571

原创 常用系统模块和文件操作

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 107

原创 迭代器和生成器

迭代器什么是迭代器(iter)迭代器是容器型数据类型,可以同时保存多个数据;可以被遍历;也可以转换成列表和元组打印迭代器的时候无法打印里面的元素;迭代器不支持len操作如果需要迭代器中的元素,必须将元素从迭代器中取出,而且一旦取出元素,这个元素在迭代器中就不存在了。怎么创建迭代器方式一:通过iter将其他序列转换成迭代器方式二:创建生成器对象(生成器可以看成是一种特殊的迭代器)iter1 = iter('abc')print(iter1)# print(len(iter1))

2021-07-30 22:47:43 115

原创 实参高阶函数

匿名函数语法:函数名 = 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 195

原创 字符串常用方法

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 234

原创 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 348

原创 函数之综合练习(敲重点)

1. 编写一个函数,交换指定字典的key和value。def exchange_key_value(dic: dict): # dic = {'a': 1, 'b': 2} new_dic = {dic[key]: key for key in dic} print(new_dic)dict1 = {'a': 1, 'b': 2}exchange_key_value(dict1) # {1: 'a', 2: 'b'}2.编写一个函数,提取指定字符串中所有的字母,然后

2021-03-15 19:27:48 299

原创 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 123

原创 字符串习题

输入一个字符串,打印所有奇数位上的字符(下标是1,3,5,7…位上的字符)例如: 输入**'abcd1234 ’ ** 输出**‘bd24’**str1 = 'abcd1234'print(str1[1::2])输入用户名,判断用户名是否合法(用户名长度6~10位)username = 'sdjs2fs'if 6 <= len(username) <= 10: print('合法')else: print('不合法')输入用户名,判断用户名是否合..

2021-03-13 09:41:04 588

原创 Python之字符串、计算机进制

1.字符串1)什么是字符串(str)字符是容器型数据类型;将’’、""、""""""、’’’’’'作为容器的标志,里面的每个符号就是字符串的元素不可变;有序元素:字符串的元素就是引号中的每一个基本符号。元素又叫字符,字符又分为普通字符和转义字符两种。str1 = ',groiveoimem'str2 = "er,kovueij"str3 = """abc123qwasjdf阿斯顿发"""str4 = '''dkhak askdhf双方都'''print(type(str3),

2021-03-11 19:34:20 851 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 364

原创 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 308

原创 列表和字典作业

1.创建一个列表,列表中有10个数, 保证列表中元素的顺序,对列表进行排重,并对列表使用进行降序排序例如:随机生成了[70, 88, 91, 70, 107, 234, 91, 177, 282, 197]— 去重之后 [70, 88, 91, 107, 234, 177, 282, 197]---- 降序排序 [282, 234, 197, 177, 107, 91, 88, 70]nums = [randint(0, 10) for _ in range(10)]print(nums)ne

2021-03-10 19:33:15 388

原创 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 497

原创 列表习题

1.已知一个数字列表,求列表中心元素。# 方法一# list = [1, 2, 3, 4, 5, 6]# length = len(list)# if length % 2 == 0:# print(list[length // 2 - 1], list[length // 2 ])# else:# print(list[length // 2])# 方法二# list = [1, 2, 3, 4, 5, 6]# l = len(list)# if l % 2:#

2021-03-09 17:30:32 1516

原创 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 429

原创 循环练习题

判断101-200之间有多少个素数,并输出所有素数。count = 0for x in range(101,201): for y in range(2,int(x**0.5)+1): if x % y == 0: break else: count += 1 print(x) print('101到200之间素数的个数为:',count) 求整数1~100的累加值,但要..

2021-03-08 17:19:19 269

原创 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 181

原创 综合案例(分支和循环应用)

基础题根据输入的成绩的范围打印及格 或者不及格。score = int(input('请输入分数:'))if score < 60: print('不及格')else: print('及格')根据输入的年纪范围打印成年或者未成年,如果年龄不在正常范围内(0~150)打印这不是人!。age = int(input('请输入年龄:'))if 0 <= age <= 18: print('未成年')elif age <= 150:

2021-03-05 19:42:28 215

原创 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 646

原创 Python基础之定义变量、运算符、if语句

Python从入门到精通Day21.定义变量1)内存大小的单位位(bit)1字节(byte) = 8位1kb = 1024字节1Mb = 1024kb1G = 1024Mb1T = 1024G2)定义变量和重新给变量赋值的底层原理:定义变量的时候会先根据数据去申请内存,内存申请多大看数据需要多大。然后将数据保存对应的内存中,最后将内存空间和变量进行关联。重新给变量赋值的时候,会重新根据新的数据申请新的内存,然后将新的数据存储到新的内存中,最后将新的内

2021-03-03 23:28:22 1036 1

空空如也

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

TA关注的人

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