自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 第2节课Matplotlib案例及作业

首先,全局引入需要的库和字体设置import randomfrom matplotlib import pyplot as pltimport matplotlibfont = {‘family’:‘SimHei’,‘weight’:‘bold’,‘size’:12}matplotlib.rc(“font”, **font)案例1.假设通过爬虫你获取到了长沙2019年4,10月份每天白天的最高气温(分别位于列表a,b),那么此时如何寻找出气温和随时间变化的某种规律x_4 = ran

2021-01-12 18:27:17 270

原创 第1节课Matplotlib案例及作业

首先,全局引入需要的库和字体设置import randomfrom matplotlib import pyplot as pltimport matplotlibfont = {‘family’:‘SimHei’,‘weight’:‘bold’,‘size’:12}matplotlib.rc(“font”, **font)案例1.子图矩阵fig,axs = plt.subplots(3,3)axs[0,1].scatter(range(20),range(20))axs[0,

2021-01-11 21:25:06 224

原创 26. 多线程爬虫

1. 线程间的资源竞争一个线程写入,另一个线程读取,是可以的,如果两个线程都要写入,就需要想办法了创建一把锁,默认是没有上锁,是不可能重复的锁,只能创建一次mutex = threading.Lock()2. 互斥锁和死锁2.1 互斥锁当多个线程同时共享数据的时候,需要同步控制某个线程要先修改共享数据时,要先将其锁定,此时资源的状态为锁定,其他线程不能改变,变成‘非锁定’的时候,其他线程才能再一次锁定资源。互斥锁保证了每次只有一个线程读取和写入,保证了多线程状态下数据的准确性# 1.

2020-08-22 09:45:22 197

原创 25. 多任务线程

1. 多任务基本介绍1.1 程序中模拟多任务import timedef sing(): for i in range(3): print('正在唱歌..%d' % i) time.sleep(1)def dance(): for i in range(3): print('正在跳舞..%d' % i) time.sleep(1)if __name__ == '__main__': sing() dance() 2. 主线程和子线程的执行关系主线程等子线程执行结束后

2020-08-20 07:30:52 120

原创 24. 图形验证码识别

1. Tesseract安装与简介阻碍我们请求数据的有时候是图形验证码,这就引进了OCR(光学⽂字识别(Optical Character Recognition))技术。开源的库和文献不是很多,其中一个是Tesseract.Tesseract是一个将图形转译为文字的OCR工具,目前由谷歌赞助,目前是最准确的开源的OCR库,通过训练可以识别任何字体。安装方法:pip install pytesseract添加环境变量:TESSDATA_PREFIX=D:\Tesseract-OCR\tessdat

2020-08-19 21:09:17 122

原创 23. selenium使用

1. 定位元素find_element_by_id:根据id查找某个元素submitTag = driver.find_element_by_id('su')submitTag1 = driver.find_element(By.ID,'su')find_element_by_class_name:根据类名查找某个元素submitTag = driver.find_element_by_class_name('su')submitTag1 = driver.find_element(B

2020-08-09 16:36:24 120

原创 22. js2py和selenium初探

1. js2py简介1.1 js2py模块使用Python中执行js代码,通常用2个库:js2py,pyexecjsjs2py是纯Python实现的库,用于在Python中运行js代码,本质上是将js代码翻译成Python代码js2py安装:pip install js2py1.2 快速入门import js2pyjs2py.eval_js('console.log("hello world")')func_js="""function add(a,b){ return a+b}

2020-08-08 19:08:02 166

原创 21. BeautifulSoup4

1. bs4简介1.1 基本概念BeautifulSoup4 简称 bs4, 是一个可以从HTML或xml文件中提取数据的网页信息提取库1.2 源码分析github下载源码安装:pip install lxml pip install bs42. bs4的使用2.1 快速开始html_doc="""<html><head> <title>The Dormouse's story</title></head>&lt

2020-07-30 16:16:46 119

原创 20. Xpath介绍和lxml模块

1. Xpath介绍1.1 基本概念Xpath (XML Path Language) 是一种XML查询语言,能在XML树状结构中寻找节点。Xpath用于在XML文档中通过元素和属性进行导航xml是一种标记语法的文本格式,xpath可以方便的定位xml中的元素和其中的属性值。lxml是Python的一个包,包含了可以将html 文本转化为xml对象,和对对象进行xpath的能力1.2 结点的关系xml_content = '''<bookstore><book>

2020-07-24 17:10:58 70

原创 19. 正则表达式(二)

1. 正则表达式的应用场景1.1 重复匹配有时候我们需要对某个字段进行重复匹配,例如手机号码136 6666 6666,一般新手会写成\d\d\d\d\d\d\d\d,这不是一种恰当的表达方式,写着费劲,看着也不舒服,还不一定表达的恰当这种情况下可以使用表达式加上修饰匹配次数的特殊符号 { },不但重复表达式可以匹配,而且看着舒服,例如[abcd][abcd] 可以写成[abcd]{2}表达式匹配{ n }重复n次,比如\d{2},相当于\d\d,a{ 3 }相当于aaa

2020-07-19 17:50:55 81

原创 18. 正则表达式(一)

1. 正则表达式的简介1.1 概念正则表达式是对字符串操作的一种逻辑公式,用事先定义好的特殊字符,以及特定字符的组合,组成一个规则字符串,这个规则字符串用来表达字符串的一种过滤逻辑1.2 使用场景表单验证(手机号,邮箱,身份证…)爬虫2. 正则表达式对python的支持2.1 普通字符字母,数字,汉字,下划线,没有特殊意义的符号,都是普通字符正则表达式中的普通字符,在匹配的时候,只能匹配与自身相同的一个字符例如 表达式c,在匹配字符串abcde时,匹配结果是成功,匹配

2020-07-18 11:24:50 145

原创 17. 爬虫请求模块

1. Urllib.request 模块1.1 相应版本Python 2: urllib 2, urllibPython 3: 把urllib 和urllib2 合并,urllib.request1.2 常用的办法urllib.request.urlopen(‘网址’) 作用:向网站发起请求并取得响应字节流:response.read()字符串:response.read().decode(“utf-8”)urllib.request.Request ( “网址”,headers =

2020-07-15 08:05:43 57

原创 16. 网络模型与爬虫介绍

1. 通讯协议1.1 端口对数据进行通讯可以分为以下几个步骤:找到对方的ip将数据发送到对方指定的应用程序上,标识这些程序,称呼这些数字叫做:端口,又叫做 ‘逻辑端口’

2020-07-13 09:50:32 389

原创 15. Python之异常 & 文件

1. 异常的简介程序在运行过程当中可能会出现错误。比如使用了不可用的索引,两个不可以相加的类型相加…这些错误可以成为异常处理异常 程序运行时出现异常,目的不是叫程序直接终止,Python希望我们可以编写一段代码来解决这些异常,叫程序继续运行,完成目标的结果。2. 异常的传播当在函数里出现异常的时候,如果在函数中对异常进行了处理,则异常不会继续传播。如果在函数中没有对异常进行处理,则异常会向函数调用处继续传播。如果函数调用处对异常进行了处理,则异常不会继续传播。如果没有处理,则异常会继续向

2020-06-21 13:22:41 66

原创 14. Python之模块

1. 模块模块化是指讲一个完整的程序分解成一个个小的模块通过将模块组合,搭建一个完整的程序模块化的优点是方便开发维护,可以后期复用2. 模块的创建在Python中一个py文件就是一个模块在一个模块中引入外部模块import模块名(模块名就是py文件)可以引入同一个模块多次,模块的实例只会创建一次import 模块名 as 模块别名每一个模块内部都有一个__name__ 可以获取模块名如果py文件直接运行时__name__默认为是__main__所以__name__的属性值为__m

2020-06-21 10:34:36 51

原创 13. Python之面向对象( 三 )

1. 继承的简介继承是面向对象的三大特征之一通过继承可以使一个类获取到其他类中的属性和方法定义类时,可以在类名后面的括号里指定这个类的父类继承提高了类的复用性,让类和类之间有了一定的关系,就有了多态的特性2. 方法的重写或覆盖如果在子类中有和父类同名的方法,则通过子类的实例调用方法时,会调用子类的方法而不是父类的方法,可以叫做方法的重写或覆盖当我们调用一个对象的方法时:会优先去当前对象中寻找是否有这个方法,如果有则直接调用如果没有,则去这个对象的类中寻找这个方法,如果有则直接调用

2020-06-17 16:50:28 52

原创 12. Python之面向对象( 二 )

1. 特殊方法在类中可以定义一些特殊方法,也成为魔术方法特殊方法都形如 '_ _ init_ _()'这种形式特殊方法不需要自己调用,会在特殊时候自动调用2. 封装出现封装的原因:我们需要一种方法增加数据的安全性:1.属性不能随意更改2.属性不能更改成任意值封装是面向对象的三大特性之一封装是指隐藏对象中一些不希望被外部访问到的属性或方法我们也可以提供给一个getter()方法和setter()方法使外部可以访问到属性1 隐藏属性名,使调用者无法随意的修改对象中的属性2

2020-06-16 10:27:07 66

原创 11. Python之面向对象 ( 一 )

1. 面向对象简介Python是一种面向对象的编程语言面向对象的语言就是所有操作都是通过对象(object)来进行的面向过程面向过程是指我们的程序分解成单个的基本的步骤,通过对每个步骤的抽象来完成这种方式适用于简单的单一的功能,如果需要的功能很多,复用率很低符合人类思维,编写起来比较容易有思路例如:小明要在教室里上课1.小明穿好衣服2.小明洗漱吃饭3.小明出门乘车4.小明到达学校5.小明被老师接走6.小明在教室里上课面向对象的编程语言较多的关注对象,没有注重过程,可

2020-06-11 16:17:02 96

原创 10. Python之函数(三)

1. 高阶函数

2020-06-09 09:09:49 49

原创 9. Python之函数( 二 )

1. 函数的返回值返回值就是函数执行返回之后的结果通过return 来指定函数的返回值return后面可以跟任意的函数对象,也可以是一个函数在函数中return后的代码都不会执行,return一旦执行函数自动结束fn 是函数对象 打印fn实际上就是在打印函数对象fn() 是在调用函数 打印fn()实际上就是在打印fn()的返回值2. 文档字符串help() 函数是python内置函数,通过help() 函数查询函数功能定义函数时候,可以在函数内部编写函数字符串,对函数进行说明3

2020-06-06 10:16:17 64

原创 8. Python之函数(一)

1. 函数的简介函数也是一种对象函数是用来保存一些可执行的代码,并且在需要时候对这些语句进行多次调用def 函数名(参数1,参数2,参数3...): 代码块需要注意的是函数名必须符合标识符命名规范(可以包含数字,字母,下划线,但是不能以数字开头)print是函数对象 print()是调用函数2. 函数的参数2.1 形参和实参形参 : 形式参数 定义形参相当于在函数内部声明了变量,但不是赋值实参 : 实际参数 指定了形参那么调用函数时候必须传递实参,实参将会赋

2020-06-04 15:11:53 82 1

原创 7. Python之元组&字典&集合

1. 元组简介元组表现形式:tuple元组是不可变序列(一般当我们希望数据不改变时候用元组,其他时候用列表)使用()创建元素元组不是空元组,至少一个逗号(,) 当元组不是空元组时括号可以省略元组解包指将元组当中每一个元素都赋值给一个变量2. 字典简介2.1 字典的基本介绍字典属于一种新的数据结构称为映射(mapping)字典的作用和列表相似,用来存储对象的容器列表的存储数据性能好,但是查询数据的性能差,字典与之相反在字典中每一个元素都有唯一的名字,通过这个唯一的名字能查到相应的元

2020-06-02 11:56:31 80

原创 6. Python之列表

1. 序列1.1 基本概念序列是Python中最基本的一种数据结构,用于保存一组有序数据,所有的数据在序列中有唯一的索引值,并且数列中的数据会按照添加的顺序分配索引数据结构指计算机中的数据存储方式1.2 序列的分类可变序列:序列中的元素可以被改变不可变序列:序列中的元素不可被改变2. 列表列表是Python中的一个对象列表的作用是保存多个有序数据,是存储对象的对象2.1 列表的使用列表的创建:通过[]创建一个空列表2.2 切片切片是指从现有列表中获得一个字列表

2020-05-30 09:46:37 58

原创 5. Python之条件控制语句

1. 条件判断语句(if)1.1 执行的流程if 语句在执行时,会先对条件表达式进行求值判断如果为True,则执行后面的语句如果为False,则不执行1.2 语法if条件表达式,代码块 if xxx: pass代码块中保存着一组代码,同一个代码块中的代码一起执行或都不执行代码块以缩进为开头,直到代码块恢复之前的缩进级别结束代码块就是为代码分组的机制2. input()函数获取用户的输入内容input()函数调用后,程序会立即暂停,等待用户输入用户输入完,

2020-05-28 09:53:58 100

原创 4. Python之运算符

1. 运算符1. 1 运算符的概念运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。例如:2+3,其操作数是2和3,而运算符则是“+”1.2 运算符的分类算术运算符赋值运算符比较运算符(关系运算符)逻辑运算符条件运算符(三元运算符)2. 算术运算符1. 加法运算符 表现形式 + 2. 减法运算符 表现形式 -3. 乘法运算符 表现形式 *4. 除法运算符 表现形式 /5. // 整除,只会保留计算后的整数位,总会返回一个整型6. % 取模,求两个数相除的余

2020-05-25 22:45:09 49

原创 3. Python基本数据类型

1. 几个概念1.1 表达式类似1+1,2*4等数学表达式不会对程序有实质影响,只是计算结果1.2 语句在程序中一般用语句完成某些功能 print(hello world’)代码块 pass1.3 程序由一条一条语句和一条一条表达式构成1.4 函数print(‘xxx’)函数就是一个语句,为了完成特定的功能形如xxx()函数分类:内置函数(内建函数)...

2020-05-22 22:14:22 144

原创 2. Python要点

Python语言1. Python语言的基本概念吉多 龟叔 一个人发明的语言 他使用C语言时觉得代码太多了,觉得不爽,就想发明一种语言增加效率。于是他1989年开发出Python。同时期的Java语言也在1995年面世了,它是sun公司维护的。2. 根据转换的时机不同编译型语言: C语言为代表,xx(源码)>编译>yy(编译后的机器码)优点是 执行速度快,缺点是 跨平台性比较差。解释性语言: Python语言为代表,xx(源码)>解释器>解释执行优点 执行速度

2020-05-21 10:18:49 97

原创 1. 计算机之要点

1 计算机的基本概念1.1 计算机是什么计算机(Computer) :俗称电脑,是现代⼀种⽤于⾼速计算的电⼦计算机器。计算机特点:数值计算,逻辑计算,存储记忆功能。总结:能够按照程序运行,能够处理数据的高速计算的现代化智能电子设备。1.2 计算机的组成硬件: 鼠标键盘显示器CPU硬盘等等,看得见摸得着的.软件: 各种电脑上安装的软件,能够执行命令的程序,看得见摸不着.2 计算机语言2.1 计算机语言的基本概念概念: 计算机语言(Computer Language)指人与计

2020-05-19 10:25:56 722

空空如也

空空如也

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

TA关注的人

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