自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 爬虫day7-线程池和进程池与队列

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

2021-08-21 17:51:08 155

原创 爬虫day6-多线程多进程

多线程多进程多线程线程是操作系统能够进行运算调度的最小单位;它被包含在进程之中,是进程中的实际运作单位。多线程,是指从软件或者硬件上实现多个线程并发执行的技术。具有多线程能力的计算机因有硬件支持而能够在同一时间执行多于一个线程,进而提升整体处理性能。简单来说:线程是程序中一个单一的顺序控制流程;而多线程就是在单个程序中同时运行多个线程来完成不同的工作。多线程是为了同步完成多项任务,不是为了提高运行效率,而是为了提高资源使用效率来提高系统的效率。多线程是在同一时间需要完成多项任务的时候实现的。多线

2021-08-21 17:49:59 121

原创 爬虫day5-xpath和多线程

xpathxpath是一个解析网页的工具,解析对象是xml文档。专业术语树:整个html或xml结构节点:html中的每个标签,xml中标签就是节点根节点:树的第一个节点,html的节点就是html标签属性:节点属性(html终究是标签属性)from lxml import etree# xml数据结构# json数据和xml数据是两种通用的数据模式,用于不同语言之间进行数据交流"""将一个超市的商品数据进行传输:json:{ "name": "永辉超市", "a

2021-08-21 17:49:18 135

原创 爬虫day4-selenium和xpath

selenium和xpath网页前进后退和切换选择卡from selenium.webdriver import Chromeimport time# 页面前进后退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

2021-08-21 17:48:45 168

原创 爬虫day3-代理和selenium

代理IP的获取和selenium代理IP的使用首先自己到个个代理IP的官网上购买IP。蘑菇代理…等等import requests, time# 1.获取蘑菇代理中的代理ipdef get_ip(): response = requests.get('购买了代理IP后会给你一个获取IP的网址,这里就填写购买的网址') # 如果获取的是一个带有{xx}的数据则表示获取失败,隔段时间在获取 if response.text[0] == '{': print('

2021-08-21 17:48:13 92

原创 爬虫day2-bs4解析

bs4解析数据bs4的使用bs4是对爬取下来的整个网页数据经行筛选,筛选出我们自己想要的数据from bs4 import BeautifulSoup# 1. 准备需要解析的网页数据(实际是用request或者selenium获取)data = open('test2.html', encoding='utf-8').read()# 2. 创建BeautifulSoup对象(可以自动纠正数据中错误的html结构)# BeautifulSoup(数据, 解析器)soup = Beautif

2021-08-21 17:47:40 113

原创 爬虫day1-requests

requests爬取网页爬虫基础环境准备需要安装的第三方库:pip install requestspip install seleniumpip install lxmlpip install bs4若是安装时出现报错,可以试着在设置窗口页面下去下载,其次试着更新pip,pip的更新用语句:easy_install -U pip若是还解决不了就上网搜一搜。网页爬取数据时需要有一定的前端知识,不需要回写,只要认识就行,自己上网学习。requestsrequests是python基

2021-08-21 17:46:56 88

原创 day20自动化办公2

自动化办公二一、excel文件的读写操作1.读excel文件import openpyxl# 1.加载文件(只能加载后坠是.xlsx的文件)wb = openpyxl.load_workbook('files/水质图.xlsx')# 2.从工作簿中获取工作表相关信息# 1)获取所有工作表的表名names = wb.sheetnamesprint(names)# 2)获取活跃表sheet1 = wb.activeprint(sheet1)# 3)根据表名获取指定表she

2021-08-07 11:49:32 77

原创 day19自动化办公1

邮件自动发送一、邮件自动收发的流程163邮箱、QQ邮箱,需要准备账号和授权码(密码不好⽤),可以去QQ邮箱官⽹的帮助中⼼去查看授权码的获取⽅式以下账号(邮箱账号),收件人账号(收件人的邮箱账号)# smtplib - 登陆邮箱:发送邮件import smtplibfrom email.mime.multipart import MIMEMultipartfrom email.header import Headerfrom email.mime.text import MIMEText

2021-08-07 11:48:02 102

原创 day18面向对象进阶

面向对象进阶一、对象属性的增删改查1.查获取对象的属性值class Student: def __init__(self, naem, age = 18, son = '000'): self.name = naem self. age = age self.son = son # 在当前类的对象被打印的时候自动调用,并且将这个方法的返回值作为打印结果(返回值必须是字符串) def __repr__(self):

2021-08-04 20:52:58 64

原创 day17面向对象基础

面向对象基础一、类和对象什么类:拥有相同功能相同属性的对象的集合什么对象:对象是类的实例从生活的角度理解类和对象的集合 (抽象的概念)杯子是类,塑料杯是对象,铁杯子是对象# 创建类和创建对象"""1)创建类 - 就是代码描述清楚这个类是拥有那些相同功能(函数)和那些相同属性(变量)的对象的集合语法:class 类名(): 类的说明文档 类的类容说明:class - 关键字;固定写法类名 - 程序员自己命名: 要求:标识符,不

2021-08-04 09:49:47 54

原创 day16正则表达式

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

2021-08-03 21:05:04 322

原创 day15-json数据和异常

json数据和异常一、文件操作的补充如果以读的方式打开不存在的文件会报错如果以写的方式打开不存在的文件不会报错# open('test.txt', 'r') # 报错!open('test.txt', 'a')open('test.txt', 'w')# 2.读写模式:+# 使用方式: r+ / w+ / a+ - 读写操作# 3.通过文件上下文打开文件"""文件对象 = open()文件对象.read()/文件对象.write()文件对象.close()with op

2021-08-02 20:58:47 158

原创 day14-模块和文件操作

模块和文件操作一、模块import email, smtplibimport turtleimport sysimport osimport math, cmathnum1 = 18 + 2jnum2 = 10 + 1jprint(num1 + num2) # (28+3j)print(num1 * num2) # (178+38j)# os模块中常用的函数# 1) os.getcwd() - 获取当前工作目录print(os.getcwd())# 2) o

2021-08-02 20:58:13 48

原创 day13-迭代器生成器和模块

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

2021-08-02 20:13:14 40

原创 day12-函数的进阶

函数的进阶一、匿名函数语法:函数名 = lambda 参数列表:返回值相当于:def 函数名(参数列表)return 返回值注意:1)匿名函数只能实现用一句代码就可以完成功能的函数2)匿名函数在调用的时候和普通函数没有区别3)匿名函数的参数不能使用冒号语法来说明类型"""sum1 = lambda x1, x2=10: x1+x2print(sum1(1, 2))print(sum1(x1=100, x2=200))print(sum1(5))# 练习:定义一个匿名函数获取

2021-07-28 20:14:29 82

原创 day11-函数

函数1.什么是函数a.认识函数1)什么是函数:函数就是实现某一特定功能的代码的封装 (每个函数都有自己特定的功能)函数就是吧实现某一个功能的所有的代码打成额一个包,每次需要这个功能的时候不用再重复去写实现这个功能的代码了,而是使用函数。2)函数的分类 (按照函数是由谁创建/定义来进行的分类)系统函数 - 由python提供的函数,这类函数只需要在需要他的功能的时候去调用他就好了 (由系统已经造好的机器)例如:print,input,type,id,max,min,sun等。。。自定义

2021-07-28 17:44:27 387

原创 day10-字符串和序列总结

1、字符串1)字符串格式占位符语法:包含格式占位符的字符串 % (数据1, 数据2, 数据3, …)注意:数据和格式占位一一对应格式占位符:%s - 字符串占位符;可以给任何类型的数据占位%d - 整数占位符;只能给数字占位,如果是浮点数拼接的时候小数位会被去掉%f - 浮点数占位符;只能给数字占位,默认保留6位小数%.Nf - 浮点数占位符;只能给数字占位,保留N位小数name = '小明'age = 18gender = '男'money = 1

2021-07-26 09:44:54 61

原创 day9字符串

字符串1、什么是什么是字符串(str)字符串是容器型数据类型:将 ‘‘或者""或者’’’’’‘或者""""""作为容器标志,引号中的每个符号就是字符串的元素。(’’’’’'和""""""在表示字符串内容的时候换行可以不使用转义字符,而是直接按回车)字符串不可变(不支持增删改):字符串有序(支持下标操作)元素:引号中的单独的每个符号都是字符的元素(又叫字符),字符可以任何符号。字符分为两类:普通字符(表示字符自身的字符) 转义字符(有不同含义的字符)str1 = '90,100'str2 =

2021-07-22 20:58:21 164

原创 day8-字典和集合

字典与集合1、字典的增删改1)增和改字典[键] = 值 - 当键存在的时候是修改键对应的值:当键不存在的时候是添加键值对字典.setdefault(键, 值) - 添加键值对,若是键值存在,那么不改变原数据cat = {'name': '美美', 'age': 2, 'color': '白色'}print(cat) # {'name': '美美', 'age': 2, 'color': '白色'}# 添加cat['breed'] = '蓝猫'print(cat) #

2021-07-21 21:04:46 86

原创 day7-列表、元组与字典

列表、元组与字典1、列表的相关函数1.max、min - 求最大值、最小值nums = [34, 89, 78, 56, 90, 23]print(max(nums), min(nums)) # 90 232.sum - 求数字序列中求和print(sum(nums)) # 3703.sorted - 排序;不修改原序列中元素的顺序而是产生一个新的列表sorted(序列);sorted(序列,reverse = True)new_nums = sorted(nums)pri

2021-07-20 20:28:50 318

原创 day5-列表与循环练习

列表1.什么是列表(list)1)列表的长样子:列表使容器型数据类型(序列),将[]作为容器的标志,里面多个元素用逗号隔开:[元素1, 元素2, 元素3, 。。。]2)列表的特点:列表是可变的(元素的个数、值和顺序可变) - 增删改:列表是有序的 - 支持下标操作3)列表对元素的要求:没有要求(不管什么类型的数据都可以作为列表的元素)# 1)空列表list1 = []list2 = [ ]print(type(list1), type(list2)) # <class 'list'&

2021-07-20 14:10:10 186

原创 day6-列表与其方法

列表与方法1、列表切片# 1. 切片 - 获取部分元素# 切片结果是列表"""语法:列表[开始下标:结束下标:步长]说明:开始下标 - 下标值(0开始的和-1开始的都行);确定切片有效范围的起点,可以取到: - 固定写法结束下标 - 下标值(0开始的和-1开始的都行);确定切片有效范围的终点,取不到步长 - 1)决定切片的方向(步长对应的方向必须和开始到结束的方向一致,否则切片结果为空) 2)决定获

2021-07-20 14:08:53 90

原创 day4-循环

循环1、for循环1.语法:for 变量 in 序列:循环体(需要重复执行代码)2.说明:a、for、in - 关键字,固定写法b、变量 - 写一个变量名。(可以是已经定义过的,也可以没有没有定义过的)c、序列 - 容器型数据类型对应的数据,常见序列:字符串、列表、元组、字典、集合、迭代器、d、生成器、range。e、: - 固定写法f、循环体 - 和for保持一个缩进的一条或者多条语句;就是需要重复执行的代码。3.

2021-07-15 21:24:13 372

原创 day3-运算符和分支

1、算数运算符下面以a=10 ,b=20为例进行计算。运算符描述实例+加两个对象相加 a + b 输出结果 30-减得到负数或是一个数减去另一个数 a - b 输出结果 -10*乘两个数相乘或是返回一个被重复若干次的字符串 a * b 输出结果 200/除b / a 输出结果 2//取整除返回商的整数部分 9//2 输出结果 4 , 9.0//2.0 输出结果 4.0%取余返回除法的余数 b % a 输出结果 0**指数

2021-07-15 00:04:54 146 1

原创 day2-pycharm基础语法和变量

1、python基础语法和变量一.python基础语法1)常用快捷键常用按键按键效果ctr + /添加/取消注释ctr + s保存ctr + c复制ctr + v粘贴ctr + x剪切ctr + z撤销ctr + a全选ctr + shift + z / ctr + y反撤销ctr + shift + l快速格式化代码ctrl + d快速复制粘贴选中的代码2)注释注释就是代码中不会被编译执行(不会被解

2021-07-15 00:03:47 491

原创 day1-python与pycharm的安装

python与pycharm的安装一、python的安装步骤1.上官网https://www.python.org/下载自己所需的python版本(建议不要下载最新版本,可能会与你的第三方库不兼容)2.小白安装步骤如下:a.步骤一,选择Customize installation,方便后面安装选择路径b.步骤二,默认全选c.步骤三,第一个勾上,其他的如图所示,地址根据自己的需求更改,点击Install安装d.步骤四,安装完成Close3.检查是否安装完成,win键 + R键 输入cm

2021-07-14 23:59:00 57

空空如也

空空如也

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

TA关注的人

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