- 博客(42)
- 资源 (1)
- 收藏
- 关注
原创 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关注的人