自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 爬虫-Scrapy框架

1.Scrapy介绍Scrapy是一个为了爬取网站数据,提取结构性数据而编写的应用框架,我们只需要实现少量的代码,就能够快速的抓取。Scrapy使用了Twisted异步网络框架,可以加快我们的下载速度http://scrapy-chs.readthedocs.io/zh_CN/1.0/intro/overview.html异步和非阻塞的区别:异步:调用在发出之后,这个调用就直接返回,不管有无结果。非阻塞:关注的是程序在等待调用结果时的状态,指在不能立刻得到结果之前,该调用不会阻塞当前线程。2

2021-07-30 12:33:58 78

原创 数据分析 ——Numpy

作业1.查看numpy版本号import numpy as npnp.__version__结果:'1.14.3'2.如何创建一个所有值都是False的布尔类型的数组:在这里插入代码片

2021-07-28 15:08:02 223

原创 数据分析- Numpy索引和切片作业

作业1. 将np.arange(10)数组中的奇数全部都替换成-1。import numpy as npa=np.arange(10)a[a%2==1]=-1aarray([ 0, -1, 2, -1, 4, -1, 6, -1, 8, -1])2. 有一个4行4列的数组(比如:np.arange(16).reshape((4,4))),请将其中对角线的数取出来形成一个一维数组。提示(使用np.eye)。k=np.arange(16).reshape((4,4))karray(

2021-07-23 16:28:59 559

原创 flask框架

flask视图和URL1.虚拟环境为什么需要虚拟环境:到目前为止,我们所有的第三方包安装都是直接通过pip install xx的方式进行安装的,这样安装会将那个包安装到你的系统级的Python环境中。但是这样有一个问题,就是如果你现在用Django 1.10.x写了个网站,然后你的领导跟你说,之前有一个旧项目是用Django 0.9开发的,让你来维护,但是Django 1.10不再兼容Django 0.9的一些语法了。这时候就会碰到一个问题,我如何在我的电脑中同时拥有Django 1.10和Djan

2020-10-11 20:26:35 195

原创 Python元类及迭代器⽣成器

1.__getattr__和__getattribute__魔法函数__getattr__是当类调⽤⼀个不存在的属性时才会调⽤getattr魔法函数,他传⼊的值item就 是你这个调⽤的不存在的值。 __getattribute__则是⽆条件的优先执⾏,所以如果不是特殊情况最好不要⽤ getattribute。lass User(object): def __init__(self,name): self.name=name def __getattr__(self, i

2020-07-15 21:57:25 308

原创 Python垃圾回收及性能分析

1.通过实例⽅法名字的字符串调⽤⽅法我们有三个图形类 Circle,Triangle,Rectangle 他们都有⼀个获取图形⾯积的⽅法,但是⽅法名字不同,我们可以实现⼀个统⼀的获取⾯积的函 数,使⽤每种⽅法名进⾏尝试,调⽤相应类的接⼝。class Triangle: def __init__(self,a,b,c): self.a,self.b,self.c = a,b,c def get_area(self): a,b,c = self.a,self.b,self.c

2020-07-11 09:50:41 237

原创 python-类与对象深度问题及解决技巧

1.如何派生内置不可变类型并修改其实例化行为练习需求我们想自定义一种新类型的元组,对于传入的可迭代对象,我们只保留其中int类型且值大于0的元素需求,定义IntTuple类。回顾__new__以下代码,执行结果为:__A.new,initB.init,newC.newD.initclass Demo(object): def __new__(cls, *args, **kwargs): print("__new__") def __init__(self)

2020-06-20 16:19:32 178

原创 爬虫-多线程进程

1.进程介绍进程:正在执⾏的程序程序:没有执⾏的代码,是⼀个静态的import multiprocessingimport threadingimport timedef demo1(): while True: print('---1--') time.sleep(1)def demo2(): while True: print('---2--') time.sleep(1)def main(): # 多线程 # t1

2020-06-20 12:07:42 146

原创 python-深入类和对象

1.鸭子类型与多态鸭子类型多态的概念是应用于Java和C#这一类强类型语言中,而Python崇尚"鸭子类型"。动态语言调用实例方法时不检查类型,只要方法存在,参数正确,就可以调用。这就是动态语言的“鸭子类型”,它并不要求严格的继承体系,一个对象只要“看起来像鸭子,走起路来像鸭子”,那它就可以被看做是鸭子。#鸭子类型 在运行之前 Cat,Dog都是在列表里面,当作变量#当运行时,加上()调用info() 才明确Cat是一个类class Cat(object): def info(self)

2020-06-20 09:37:43 364

原创 爬虫-爬取表情包

1.思路2.分析

2020-06-14 11:30:03 1690

原创 爬虫-- 多线程

1.线程间的资源竞争⼀个线程写⼊,⼀个线程读取,没问题,如果两个线程都写⼊呢?import threadingimport timeimport disnum=0def demo1(nums): global num for i in range(nums): num+=1 print('demo1---%d'%num)def demo2(nums): global num for i in range(nums):

2020-06-13 18:30:21 196

原创 爬虫-多任务线程

1. 多任务基本介绍有很多的场景中的事情是同时进⾏的,⽐如开⻋的时候 ⼿和脚共同来驾驶汽 ⻋,再⽐如唱歌跳舞也是同时进⾏的。1.1 程序中模拟多任务import time def 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__ ==

2020-06-07 20:54:11 133

原创 爬虫-图形验证码识别

1. Tesseract安装以及简介阻碍我们爬⾍的。有时候正是在登录或者请求⼀些数据时候的图形验证码。因此这⾥我们讲解⼀种能将图⽚翻译成⽂字的技术。将图⽚翻译成⽂字⼀般被称为光学⽂字识别(Optical Character Recognition),简写为OCR。实现 OCR的库不是很多,特别是开源的。因为这块存在⼀定的技术壁垒(需要⼤量 的数据、算法、机器学习、深度学习知识等),并且如果做好了具有很⾼的商业价值。因此开源的⽐较少。这⾥介绍⼀个⽐较优秀的图像识别开源库: Tesseract。 Tesser

2020-06-07 15:43:11 301

原创 爬虫- selenium使⽤

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

2020-06-04 06:56:23 197

原创 爬虫-js2py和selenium

1.js2py简介在平时爬虫过程中,我们会遇到网站对js文件加密,无法爬取,现在就让我们来了解一下js2py模块,它可以对js文件进行解密。js2py模块使⽤Python中执⾏JS代码,通常两个库:js2py,pyexecjs;js2py是纯python实现的库,⽤于在python中运⾏js代码,本质上是将js代码翻 译成python代码js2py安装 pip install js2pyimport js2pyjs2py.eval_js('console.log("hello wrold")'

2020-06-03 21:52:37 229

原创 爬虫-find_all()和find()方法

1. find_all()和find()find_all()⽅法以列表形式返回所有的搜索到的标签数据。find()⽅法返回搜索到的第⼀条数据find_all(self, name=None, attrs={}, recursive=True, text=None,limit=None, **kwargs)name : tag 名称attrs :标签的属性recursive : 是否递归text : 文本内容limit : 限制返回的条数**kwargs :不定长参数 以关键字来传参fr

2020-05-25 21:52:04 2997

原创 爬虫-bs4

1.bs4( BeautifulSoup4)简介1.1 基本概念Beautiful Soup 是⼀个可以从HTML或XML⽂件中提取数据的⽹⻚信息提取库。1.2 安装pip install lxmlpip install bs42.bs4的使⽤from bs4 import BeautifulSouphtml_doc = """<html><head><title>The Dormouse's story</title></head&g

2020-05-24 21:43:40 171

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

2020-05-18 22:05:37 185

原创 Python-异常&文件

1. 异常简介程序在运⾏过程中可能会出现⼀些错误。⽐如: 使⽤了不存在的索引,两个不同类型的数据相加… 这些错误我们称之为异常。 print(a) # NameError: name 'a' is not defined print(10/0) # ZeroDivisionError: division by zero处理异常 程序运⾏时出现异常,⽬的并不是让我们的程序直接终⽌!Python 是希望在出现异常时,我们可以编写代码来对异常进⾏处理。例如:try: print(10 / 2

2020-05-17 10:11:33 240

原创 Python-模块

1. 模块模块化指将一个完整的程序分解成一个个的小模块。通过将模块组合,来搭建出一个完整的程序。模块化的优点:方便开发方便维护模块可以复用2. 模块的创建在Python当中一个py文件就是一个模块。在一个模块中引入外部模块语法: import 模块名(模块名就是py文件)可以引入同一个模块多次,但是模块的实例只会创建一次。import 模块名 as 模块别名在一个模块内部都有一个__name__,通过它我们可以获取模块的名字。如果py文件直接运行时,那么__name__默认等于字

2020-05-12 06:46:54 156

原创 Python-面向对象(三)

1. 继承简介继承是面向对象三大特性之一。通过继承我们可以使一个类获取到其他类中的属性和方法。在定义类时,可以在类名后面的括号中指定当前类的父类(超类、基类)。继承提高了类的复用性,让类与类之间产生了关系,有了这个关系,才有了多态的特性。‘’’‘’’2. 方法重写如果在子类中有和父类同名的方法,则通过子类实例去调用方法时,会调用子类的方法而不是父类的方法,这个特点我们称之为方法的重写(覆盖)。当我们调用一个对象的方法时:会优先去当前对象中寻找是否具有该方法,如果有则直接调用;如果没有则去

2020-05-10 18:49:11 164

原创 爬虫-正则表达式

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

2020-05-08 21:02:58 182

原创 Python-面向对象(二)

1.特殊方法在类中可以定义一些特殊方法也称为魔术方法。特殊方法都是形如 _xxx_()这种形式特殊方法不需要我们调用,特殊方法会在特定时候自动调用。 # 特殊方法形如 __开头 __结尾    # 特殊方法不需要我们自己调用    # 特殊方法会在特殊时刻自己调用    # 在实例对象创建以后执行...

2020-05-07 07:57:50 177

原创 爬虫-请求模块

1. urllib.request模块1.版本:python2 :urllib2、urllibpython3 :把urllib和urllib2合并,urllib.request2. 常⽤的⽅法urllib.request.urlopen(“⽹址”) 作⽤ :向⽹站发起⼀个请求并获取响应。字节流 = response.read()字符串 = response.read().decode...

2020-05-04 11:04:47 526

原创 Python-面向对象(一)

1. 面向对象简介• Python是一门面向对象的编程语言• 所谓面向对象的语言,简单理解就是语言中的所有操作都是通过对象来进行的。• 面向过程:• 面向过程指将我们的程序分解为一个一个步骤,通过对每个步骤的抽象来完成程序。• 这种编写方式往往只适用于一个功能,如果要实现别的功能,往往复用性比较低。• 这种编程方式符合人类的思维,编写起来比较容易。• 1.妈妈穿衣服穿鞋出门• 2....

2020-05-04 09:26:45 116

原创 爬虫- 爬虫简介

1.通讯协议1.1 端口我们想要进行数据通讯分几步?找到对方ip数据要发送到对方指定的应用程序上。为了标识这些应用程序,所以给这些网络应用程序都用数字进行了标识。为了方便称呼这个数字,叫做端口。这里的端口 我们一般都叫做 ‘逻辑端口’。定义通讯规则。这个通讯规则我们一般称之为协议。1.2 通讯协议国际组织定义了通用的通信协议 TCP/IP协议。所谓协议就是指计算机通信网络中两台...

2020-04-29 19:04:48 522

原创 Python-函数(三)

1. 高阶函数接收函数作为参数,或者将函数作为返回值返回的函数就是高阶函数。2.闭包将函数作为返回值也是高阶函数我们也称为闭包。闭包的好处:通过闭包可以创建一些只有当前函数能访问的变量,可以将一些私有数据藏到闭包中。形成闭包的条件:1.函数嵌套2.将内部函数作为返回值3.返回内部函数必须要使用到外部函数的变量3. 装饰器的引入我们可以直接通过修改函数中的代码来完成需求,但是会...

2020-04-28 06:15:35 276

原创 Python-函数(二)

1. 函数的返回值.返回值就是函数执行以后返回的结果.通过return来指定函数的返回值.return后面可以跟任意对象,返回值甚至可以是一个函数2.文档字符串help()是Python中内置函数,通过help()函数可以查询Python中函数的用法。在定义函数时,可以在函数内部编写文档字符串,文档字符串就是对函数的说明。3.函数的作用域作用域(scope):作用域指的是变量生效的...

2020-04-25 08:55:41 268

原创 Python-函数(一)

1. 函数简介函数也是一个对象函数用来保存一些可执行的代码,并且可以在需要时,对这些语句进行多次调用语法def 函数名([形参1,形参2,形参3…]):代码块注意:函数名必须符合标识符的规范(可以包含字母、数字、下划线但是不能以数字开头)。函数中保存的代码不会立即执行,需要调用函数代码才会执行。print是函数对象 print()是调用函数。2. 函数的参数2.1 形参和实参形...

2020-04-23 21:20:45 340

原创 Python-元组&字典&集合

1. 元组简介元组基本介绍元组表现形式tuple元组是⼀个不可变序列(⼀般当我们希望数据不改变时,我们使⽤元组,其他情况下基本都⽤列表)。使⽤()创建元素元组不是空元组⾄少有⼀个 逗号(,) 当元组不是空元组时,括号可以省略。元组解包指将元组当中的每⼀个元素都赋值给⼀个变量 。在元组解包时 变量的数量必须和元组中元素要一一对应如果出现变量和元素没有对等的情况下,我们可以在变量前面加个...

2020-04-21 21:27:26 245

原创 Python-序列

1. 序列(sequence)1.1基本概念.序列是Python中最基本的一种数据结构。序列用于保存一组有序的数据,所有的数据在序列当中都有一个唯一的位置(索引)并且序列中的数据会按照添加的顺序来分配索引。数据结构指计算机中数据存储的方式。1.2序列的分类.可变序列(序列中的元素可以改变):例如 列表(list)字典(dict).不可变序列(序列中的元素不能改变):例如 字符串(str...

2020-04-19 11:46:38 237

原创 Python-条件控制语句

1. 条件判断语句(if语句)执行的流程:if语句在执行时,会先对条件表达式进行求值判断,如果为True,则执行if后的语句;如果为False,则不执行。什么是代码块?代码块当中保存着一组代码,同一个代码块中的代码,要么都执行要么都不执行。代码块以缩进开始,直到代码恢复到之前的缩进级别时结束;简单来说代码块就是一种为代码分组的机制语法:if 条件表达式 :代码块2. inp...

2020-04-14 19:19:26 488

原创 Python-运算符

1.运算符1.1运算符的概念运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。例如:2+3,其操作数是2和3,而运算符则是“+”。1.2运算符的分类.算术运算符.赋值运算符.比较运算符(关系运算符).逻辑运算符.条件运算符(三元运算符)2.算术运算符.加法运算符 表现形式 + 如:3+5.减法运算符 表现形式 - 如:8-7.乘法运算符 表现形式 * ...

2020-04-11 18:47:45 346

原创 Python-基本数据类型

1.基本概念1.1 表达式.表达式:是由数字、算符、数字分组符号(括号)、自由变量和约束变量等以能求得数值的有意义排列方法所得的组合。.表达式特点:表达式一般仅仅用于计算一些结果,不会对程序产生实质性的影响。如果在交互模式中输入一个表达式,解释器会自动将表达式的结果输出。1.2 语句一个语法上自成体系的单位,它由一个词或句法上有关连的一组词构成。语句的执行一般会对程序产生一定的...

2020-04-09 20:42:00 134

原创 Python-概念及环境搭建

Python要点1.Python语言1.1 Python语言的基本概念 Python 是一种极少数能兼具 简单 与 功能强大 的编程语言,这门语言专注于如何解决问题,而非拘泥于语法与结构。 官方对 Python 的介绍如下:Python 是一款易于学习且功能强大的编程语言。 它具有高效率的数据结构,能够简单又有效地实现面向对象编程。Python 简洁的语法与动态输入之特性,加之...

2020-04-05 22:56:01 189

原创 计算机要点

计算机要点1. 计算机基本概念1.1 计算机是什么? .能够按照程序运行、自动、高速处理数据的现代化智能电子设备 .特点 : 数值计算 逻辑计算 存储记忆功能1.2 计算机的组成? 硬件:如键盘、鼠标、硬盘等能够看得见摸得着 软件:如微信、ORACLE等在后台运行的一些程序集合2. 计算机语言2.1 计算机语言的基本概念 概念 :计算机语言(Computer...

2020-04-02 21:05:51 147

空空如也

空空如也

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

TA关注的人

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