自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

  • 博客(41)
  • 收藏
  • 关注

原创 Matplotlib库的了解(一、折线图)

目录折线图与基础绘图功能案例:一、展现上海一周的天气,比如从星期一到星期日的天气温度如下结果二、修改图形大小与图片保存折线图与基础绘图功能案例:一、展现上海一周的天气,比如从星期一到星期日的天气温度如下plt.figure(figsize=(10, 10))plt.plot([1, 2, 3, 4, 5, 6 ,7], [17,17,18,15,11,11,13])plt.show()结果二、修改图形大小与图片保存plt.figure(figsize=(), dpi=) fi

2020-07-21 09:46:31 224

原创 selenium深入拓展

目录selenium深入拓展1. selenium处理下拉表单2.ActionChains类2.1 selenium的ActionChains类使用场景2.2 ActionChains基本用法2.2.1 链式写法2.2.2 分步写法2.3 代码示例2.3.1 点击操作2.3.2 鼠标移动2.3.3 拖拽2.3.4 按键2.4 ActionChains方法列表3. selenium还可以录制python脚本selenium深入拓展1. selenium处理下拉表单Selenium专门提供了Select

2020-07-13 15:45:08 258

原创 scrapy框架介绍(七、scrapy模拟登陆)

目录scrapy模拟登陆1 模拟登陆的方法介绍1.1 requests模块是如何实现模拟登陆的?1.2 selenium是如何模拟登陆的?1.3 scrapy有三种方法模拟登陆2 scrapy携带cookies直接获取需要登陆后的页面2.1 应用场景2.2 实现:重构scrapy的starte_rquests方法2.3 携带cookies登陆github3. scrapy.FormRequest发送post请求3.1 scrapy.FormRequest()的使用3.2 使用scrapy.FormReque

2020-07-13 15:28:35 264

原创 scrapy框架介绍(六、scrapy中间件介绍)

目录scrapy中间件1 scrapy中间件的分类和作用1.1 scrapy中间件的分类1.2 scrapy中间的作用2 下载中间件的使用方法:3. 定义实现随机User-Agent的下载中间件3.1 在middlewares.py中完善代码3.2 在爬虫文件tencent.py的每个解析函数中添加3.3 在settings中设置开启自定义的下载中间件,设置方法同管道3.4 在settings中添加UA的列表4 代理ip的使用4.1 思路分析4.2 具体实现4.3 检测代理ip是否可用scrapy中间件

2020-07-13 15:12:49 290

原创 scrapy框架介绍(五、crawlspider爬虫使用)

目录scrapy的crawlspider爬虫1 crawlspider是什么2 创建crawlspider爬虫并观察爬虫内的默认内容2.1 创建crawlspider爬虫:2.2 spider中默认生成的内容如下:2.3 观察跟普通的scrapy.spider的区别3. crawlspider腾讯招聘爬虫4 crawlspider使用的注意点:5 了解crawlspider其他知识点scrapy的crawlspider爬虫1 crawlspider是什么对应的crawlspider就可以实现上述需求

2020-07-13 14:53:33 450

原创 redis数据库的了解和使用

目录Redis 了解入门redis 启动方法redis数据结构有5个类型一、redis数据结构 – strings 操作方式案例二、redis数据结构 – lists 操作方式案例三、redis数据结构 – 集合案例四、redis数据结构 – 有序集合案例五、redis数据结构 – 哈希案例Redis 了解入门redis 启动方法WINDOWS系统中在cmd界面切换到redis安装盘中,然后输入redis-cli启动服务redis数据结构有5个类型字符串(strings)字符串列表(li

2020-07-13 14:33:58 181

原创 scrapy框架介绍(四、scrapy深入使用)

目录scrapy的深入使用1 了解scrapy的debug信息2 了解scrapyShell3 settings.py中的设置信息3.1 为什么项目中需要配置文件3.2 配置文件中的变量使用方法3.3 settings.py中的重点字段和含义4 pipeline管道的深入使用4.1 pipeline中常用的方法:4.2 管道文件的修改4.3 开启管道4.4 pipeline使用注意点scrapy的深入使用1 了解scrapy的debug信息2 了解scrapyShellscrapy shell是

2020-07-07 17:58:11 326

原创 scrapy框架介绍(三、scrapy发送翻页请求)

目录scrapy发送翻页请求1. 翻页请求的思路2 scrapy实现翻页请求2.1 实现方法2.2 腾讯招聘爬虫2.3 代码实现2.4 scrapy.Request的更多参数3 meta参数的使用4. item的使用4.1 Item能够做什么4.2 定义Item4.3 使用Itemscrapy发送翻页请求1. 翻页请求的思路对于要提取如下图中所有页面上的数据该怎么办?回顾requests模块是如何实现翻页请求的:找到下一页的URL地址调用requests.get(url)scrapy实

2020-07-07 17:25:23 474

原创 scrapy框架介绍(二、入门使用)

目录scrapy的入门使用1 scrapy项目实现流程2 创建scrapy项目3 创建爬虫4 完善spider5 利用管道pipeline来处理(保存)数据5.1 对Sixstar爬虫进行修改完善5.2 修改pipelines.py文件5.3 在settings.py设置开启pipeline6 运行scrapyscrapy的入门使用1 scrapy项目实现流程创建一个scrapy项目:scrapy startproject mySpider生成一个爬虫:scrapy genspider Sixs

2020-07-07 16:58:39 169

原创 scrapy框架介绍(一、概念和流程简介)

目录scrapy的概念和流程1 了解scrapy2 什么是scrapy?3 异步和非阻塞的区别4 scrapy的工作流程4.1 回顾之前的爬虫流程4.2 上面的流程可以改写为4.3 scrapy的流程其流程可以描述如下:4.4 scrapy中每个模块的具体作用scrapy的概念和流程1 了解scrapyscrapy不能解决剩下的10%的爬虫需求能够让开发过程方便、快速scrapy框架能够让我们的爬虫效率更高2 什么是scrapy?文档地址:http://scrapy-chs.readth

2020-07-06 14:29:56 793

原创 selenium的使用与高级开发模式方法

目录selenium的基本使用1 加载网页:2 定位和操作:3 查看请求信息:4 退出元素定位的方法1 selenium的定位操作1.1 selenium - 键盘操作1.2 selenium - 鼠标操作selenium的其他方法1 selenium 处理cookie2 页面等待2.1 Selenium显示等待2.2 selenium的隐式等待3 switch方法切换的操作3.1 一个浏览器肯定会有很多窗口,所以我们肯定要有方法来实现窗口的切换。切换窗口的方法如下:3.2 iframe是html中常用的一

2020-07-06 13:44:58 910

原创 了解无头浏览器介绍与安装

目录无头浏览器介绍与安装1 什么是selenium2 PhantomJS的介绍3 Chromedriver的介绍4 driver的安装5 PhantomJS安装示例5.1 下载PhantomJS:5.2 解压并创建软连接:6 chromedriver安装示例无头浏览器介绍与安装1 什么是seleniumSelenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,Selenium 可以直接运行在浏览器上,它支持所有主流的浏览器(包括PhantomJS这些无界面的浏览器),可以接收指

2020-07-06 13:01:09 920

原创 python多任务爬虫(四、协程池实现爬虫)

目录协程池实现爬虫1 协程池模块使用介绍2 使用协程池实现爬虫的具体实现过程案例协程池实现爬虫1 协程池模块使用介绍协程池模块 import gevent.monkey gevent.monkey.path_all() from gevent.pool import Pool2 使用协程池实现爬虫的具体实现过程案例# coding=utf-8import gevent.monkeygevent.monkey.path_all()from gevent.pool import P

2020-06-30 09:56:48 514

原创 python多任务爬虫(三、线程池实现爬虫)

目录线程池实现爬虫1 线程池使用方法介绍2 使用线程池实现爬虫的具体实现案例线程池实现爬虫1 线程池使用方法介绍实例化线程池对象 from multiprocessing.dummy import Pool pool = Pool(process=5) #默认大小是cup的个数把从发送请求,提取数据,到保存合并成一个函数,交给线程池异步执行使用方法pool.apply_async(func)def exetute_requests_item_save(self): ur

2020-06-30 09:52:41 727

原创 python高效爬虫(二、多进程)

目录多进程爬虫1 多进程程的方法使用2 多进程中队列的使用3 具体实现案例多进程爬虫1 多进程程的方法使用from multiprocessing import Process #导入模块t1 = Process(targe=func,args=(,)) #使用一个进程来执行一个函数t1.daemon = True #设置为守护进程t1.start() #此时线程才会启动2 多进程中队列的使用多进程中使用普通的队列模块会发生阻塞,对应的需要使用multiprocessing提供的Jo

2020-06-30 09:45:01 328

原创 python高效爬虫(一、多线程)

目录多线程爬虫1 多线程实现思路剖析2 案例多线程爬虫1 多线程实现思路剖析把爬虫中的每个步骤封装成函数,分别用线程去执行不同的函数通过队列相互通信,函数间解耦2 案例# coding=utf-8import requestsfrom lxml import etreefrom queue import Queueimport threadingclass Qiubai: def __init__(self): self.temp_url = "ht

2020-06-30 09:38:42 331

原创 身份证解析

通过制作一个身份证解析案例来学习字符串的常用操作创建一个类及需要初始化的信息先创建一个类的属性ID_number通过使用input来动态获取输入后的一个身份证信息根据类属性ID_number通过index定位对应需要的value作为__init__(self):初始值(后续会用到)class ShenFenZheng(object): ID_number = input('请输入您的身份证号码') @staticmethod def ps(): pri

2020-06-28 14:40:32 411

原创 详解lxml模块

目录lxml模块的了解1 lxml的安装2 lxml的使用2.1 lxml模块的入门使用2.2 lxml的深入练习2.3 lxml模块的进阶使用3 实际案例逻辑分析lxml模块的了解在前面一篇文章讲解了xpath的语法,那么在python爬虫代码中我们如何使用xpath呢? 对应的我们需要使用到lxml模块1 lxml的安装安装方式:pip install lxml2 lxml的使用2.1 lxml模块的入门使用导入lxml 的 etree 库 (导入没有提示不代表不能用) `fro

2020-06-23 14:40:32 2602

原创 爬虫之数据提取方法(二、xpath提取)

目录数据提取之xpath1 为什么要学习xpath和lxml2 什么是xpath3 认识xml3.1 html和xml的区别3.2 xml的树结构4 xpath的节点关系4.1 xpath中的节点是什么4.2 xpath中节点的关系5 xpath中节点选择的工具6 xpath语法6.1 选取节点6.2 查找特定的节点6.3 选取未知节点6.4 选取若干路径数据提取之xpath1 为什么要学习xpath和lxmllxml是一款高性能的 Python HTML/XML 解析器,我们可以利用XPath,来

2020-06-23 14:19:46 2904

原创 爬虫之数据提取方法(一、json提取)

目录json的数据提取1 什么是json2 json模块中方法的学习3 jsonpath模块的学习3.1 jsonpath介绍3.2 JsonPath 对于 JSON 来说,相当于 XPath 对于 XML。3.3 JsonPath与XPath语法对比:3.4 语法使用示例3.5 代码示例:json的数据提取1 什么是jsonJSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,它使得人们很容易的进行阅读和编写。同时也方便了机器进行解析和生成。适用于进行数据交

2020-06-23 14:00:43 6760 2

原创 requests模块(三、cookie相关的请求及其他高级用法)

目录requess模块处理cookie相关内容1 爬虫中使用cookie1.1 爬虫中使用cookie的利弊1.2 requests处理cookie的方法2 cookie添加在heades中2.1 headers中cookie的位置2.2 cookie的具体组成的字段2.3 在headers中使用cookie3 使用cookies参数接收字典形式的cookie4 使用requests.session处理cookie4.1 使用方法requests模块的其他方法1 requests中cookirJar的处理方

2020-06-22 16:06:22 1951 3

原创 requests模块(二、post请求)

目录requests模块的深入了解使用发送post请求1 使用requests发送POST请求1.1 requests发送post请求语法:1.2 POST请求练习2 了解使用代理2.1 为什么要使用代理2.2 理解使用代理的过程2.3 理解正向代理和反向代理的区别requests模块的深入了解使用发送post请求1 使用requests发送POST请求POST请求应用场景登录注册( POST 比 GET 更安全)需要传输大文本内容的时候( POST 请求对数据长度没有要求)所以同样的

2020-06-22 15:36:15 485

原创 requests模块

目录了解requests模块的入门使用发送GET请求1 requests介绍2 requests的作用3 requests模块发送简单的get请求、获取响应3.1 response.text 和response.content的区别4 发送带header的请求header的形式:字典用法案例完整的代码5 发送带参数的请求5.1 什么叫做请求参数:5.2 请求参数的形式:字典5.3 请求参数的用法5.4 关于参数的注意点5.5 两种方式:发送带参数的请求了解requests模块的入门使用发送GET请求1

2020-06-22 14:56:26 168

原创 多任务(三、协程)

目录迭代器1. 可迭代对象2. 如何判断一个对象是否可以迭代3. 可迭代对象的本质4. iter()函数与next()函数5. 如何判断一个对象是否是迭代器6. 迭代器Iterator7. for...in...循环的本质8. 迭代器的应用场景9. 并不是只有for循环能接收可迭代对象生成器1. 生成器2. 创建生成器方法13. 创建生成器方法2总结4. 使用send唤醒使用send使用next函数协程协程简介协程和线程差异简单实现协程`greenlet`库安装方式`gevent`库安装1. gevent的

2020-06-12 16:29:28 173

原创 多任务(二、多进程)

目录进程以及状态1. 进程概念2. 进程的状态进程的创建-multiprocessing1. 2个while循环一起执行2. 进程pid3. Process语法结构如下:4. 给子进程指定的函数传递参数5. 进程间不同享全局变量进程、线程对比功能定义的不同区别优缺点进程间通信-Queue1. Queue的使用说明2. Queue实例进程池Pool进程池中的Queue进程以及状态1. 进程概念程序:例如xxx.py这是程序,是一个静态的进程:一个程序运行起来后,代码+用到的资源 称之为进程,它是操作

2020-06-12 15:55:53 289

原创 多任务(一、多线程)

目录多任务的概念线程1. 使用threading模块2. 主线程会等待所有的子线程结束后才结束3. 查看线程数量4. 线程的执行顺序5. 总结多线程-共享全局变量列表当做实参传递到线程中多线程-共享全局变量问题多线程开发可能遇到的问题同步的概念解决线程同时修改全局变量的方式互斥锁上锁解锁过程多任务的概念什么叫“多任务”呢?简单地说,就是操作系统可以同时运行多个任务。打个比方,你一边在用浏览器上网,一边在听MP3,一边在用Word赶作业,这就是多任务,至少同时有3个任务正在运行。还有很多任务悄悄地在后台

2020-06-12 15:26:23 498

原创 文件介绍及读写方式

目录文件01. 文件的概念1.1 文件的概念和作用文件的作用1.2 文件的存储方式文本文件和二进制文件02. 文件的基本操作2.1 操作文件的套路2.2 操作文件的函数/方法2.3 read 方法 —— 读取文件2.4 打开文件的方式2.5 按行读取文件内容2.6 文件读写案例 —— 复制文件小文件复制大文件复制03. 文件/目录的常用管理操作文件操作目录操作04. 文本文件的编码格式(科普)4.1 ASCII 编码和 UNICODE 编码`ASCII` 编码`UTF-8` 编码格式4.2 Ptyhon 2

2020-06-12 13:57:38 822

原创 面向对象(三、类私有属性和私有方法)

目录私有属性和私有方法01. 应用场景及定义方式02. 伪私有属性和私有方法(科普)继承01. 单继承1.1 继承的概念、语法和特点1) 继承的语法2) 专业术语3) 继承的传递性私有属性和私有方法01. 应用场景及定义方式应用场景在实际开发中,对象 的 某些属性或方法 可能只希望 在对象的内部被使用,而 不希望在外部被访问到私有属性 就是 对象 不希望公开的 属性私有方法 就是 对象 不希望公开的 方法定义方式在 定义属性或方法时,在 属性名或者方法名前 增加 两个下划线,定义的

2020-06-12 12:52:26 1479

原创 面向对象(二、基础语法)

目录面相对象的基础语法01. dir内置函数面向对象是一个更大的封装,在一个类中封装多个方法,这样通过这个类创建出来的对象,就可以直接调用这些方法了1.1 创建对象案例面向对象中的引用概念之前代码存在的问题 —— 在类的外部给对象增加属性1.2 初始化方法1.3 在初始化方法内部定义属性1.4 改造初始化方法 —— 初始化的同时设置初始值02. 内置方法和属性2.1 `__del__` 方法(知道)2.2 `__str__` 方法03. 面向对象封装封装案例1小明爱跑步案例2摆放家具实现过程:感谢各位读者的

2020-06-05 16:45:52 139

原创 面向对象(一、基本概念)

目录面向对象(OOP)基本概念01. 面向对象基本概念1.1 过程和函数(科普)1.2 面相过程 和 面相对象 基本概念1) 面相过程 —— 怎么做?2) 面向对象 —— 谁来做?类和对象01. 类和对象的概念1.1 类1.2 对象02. 类和对象的关系03. 类的设计大驼峰命名法3.1 类名的确定3.2 属性和方法的确定面向对象(OOP)基本概念01. 面向对象基本概念我们之前学习的编程方式就是 面向过程 的面相过程 和 面相对象,是两种不同的 编程方式对比 面向过程 的特点,可以更好地了

2020-06-05 14:42:43 254

原创 正则语法基础

目录re模块操作1. re模块的使用过程2. re模块示例(匹配以sixstar开头的语句)3. 说明匹配单个字符示例1: .示例2:[ ]示例3:\d匹配多个字符示例1:*示例2:+示例3:?示例4:{m}匹配分组示例2:( )示例3:\示例4:\number示例5:(?P) (?P=name)注意:(?P)和(?P=name)中的字母p大写re模块的高级用法searchfindallsub 将匹配到的数据进行替换python贪婪和非贪婪r的作用re模块操作在Python中需要通过正则表达式对字符串

2020-06-05 13:47:28 112

原创 Python异常捕获

目录异常01. 异常的概念02. 捕获异常2.1 简单的捕获异常语法简单异常捕获演练 —— 要求用户输入整数2.2 错误类型捕获异常类型捕获演练 —— 要求用户输入整数捕获未知错误2.3 异常捕获完整语法03. 异常的传递04. 抛出 `raise` 异常4.1 应用场景4.2 抛出异常异常01. 异常的概念程序在运行时,如果 Python 解释器 遇到 到一个错误,会停止程序的执行,并且提示一些错误信息,这就是 异常程序停止执行并且提示错误信息 这个动作,我们通常称之为:抛出(raise)异

2020-06-03 12:49:27 150

原创 Python高级变量类型(二)

目录变量进阶(理解)01. 变量的引用1.1 引用的概念1.2 `变量引用` 的示例1.3 函数的参数和返回值的传递02. 可变和不可变类型哈希 (hash)03. 局部变量和全局变量3.1 局部变量局部变量的作用局部变量的生命周期3.2 全局变量1) 函数不能直接修改 `全局变量的引用`2) 在函数内部修改全局变量的值3) 全局变量定义的位置4) 全局变量命名的建议变量进阶(理解)01. 变量的引用变量 和 数据 都是保存在 内存 中的在 Python 中 函数 的 参数传递 以及 返回值

2020-05-29 16:11:47 339

原创 Python函数知识(二)

函数进阶函数进阶01. 函数参数和返回值的作用1.1 无参数,无返回值1.2 无参数,有返回值1.3 有参数,无返回值1.4 有参数,有返回值02. 函数的返回值 进阶示例 —— 温度和湿度测量03. 函数的参数 进阶3.1. 不可变和可变的参数3.2 缺省参数指定函数的缺省参数缺省参数的注意事项1) 缺省参数的定义位置2) 调用带有多个缺省参数的函数3.3 多值参数(知道)定义支持多值参数的函数多值参数案例 —— 计算任意多个数字的和元组和字典的拆包(知道)04. 函数的递归4.1 递归函数的特点4.2

2020-05-29 14:41:20 347 1

原创 Python函数(一)

目录函数基础01. 函数的快速体验1.1 快速体验02. 函数基本使用2.1 函数的定义2.2 函数调用2.3 第一个函数演练2.4 函数的文档注释03. 函数的参数3.1 函数参数的使用3.2 参数的作用3.3 形参和实参04. 函数的返回值05. 函数的嵌套调用06. 使用模块中的函数6.1 第一个模块体验体验小结6.2 模块名也是一个标识符函数基础01. 函数的快速体验1.1 快速体验所谓函数,就是把 具有独立功能的代码块 组织为一个小模块,在需要的时候 调用函数的使用包含两个步骤:

2020-05-29 10:39:39 172

原创 Python高级变量类型(一)

目录01. 列表1.1 列表的定义1.2 列表常用操作del 关键字(科普)关键字、函数和方法(科普)1.3 循环遍历1.4 应用场景02. 元组2.1 元组的定义创建空元组元组中 只包含一个元素 时,需要 在元素后面添加逗号2.2 元组常用操作2.3 循环遍历2.4 应用场景元组和列表之间的转换03. 字典3.1 字典的定义3.2 字典常用操作3.3 循环遍历3.4 应用场景04. 字符串4.1 字符串的定义4.2 字符串的常用操作1) 判断类型 - 92) 查找和替换 - 73) 大小写转换 - 54)

2020-05-28 22:21:47 667

原创 Python基础语法(一)

判断(if)语句文章目录判断(if)语句目标01. if 语句体验2.1 if 判断语句基本语法2.2 判断语句演练 —— 判断年龄2.3 else 处理条件不满足的情况02. 逻辑运算2.1 `and`2.2 `or`2.3 `not`03. if 语句进阶3.1 `elif`3.2 `if` 的嵌套目标if 语句体验if 语句进阶01. if 语句体验2.1 if 判断语句基本语法在 Python 中,if 语句 就是用来进行判断的,格式如下:if 要判断的条件: 条件

2020-05-26 12:31:37 1096

原创 Python运算符与变量的基本使用

文章目录算数运算符目标01. 算数运算符02. 比较(关系)运算符03. 逻辑运算符04. 赋值运算符05. 成员运算符06. 算数运算符的优先级变量的基本使用目标01. 变量定义1) 变量演练1 —— iPython2) 变量演练 2 —— PyCharm3) 变量演练 3 —— 超市买苹果02. 变量的类型2.1 变量的类型算数运算符计算机,顾名思义就是负责进行 数学计算 并且 存储计算结果 的电子设备目标算术运算符的基本使用01. 算数运算符算数运算符是 运算符的一种是完成基

2020-05-22 15:12:41 470

原创 PyCharm 的初始设置及基本使用

PyCharm 的初始设置说明目标PyCharm 的初始设置说明目标01. 恢复 PyCharm 的初始设置02. 第一次启动 PyCharm2.1 导入配置信息2.2 选择许可协议2.3 PyCharm 的配置初始界面2.4 欢迎界面03. 新建/打开一个 Python 项目3.1 项目简介3.2 打开 Python 项目3.3 设置项目使用的解释器版本3.4 新建项目04. 设置 PyCharm 的字体显示05. PyCharm 的升级以及其他5.1 安装和启动步骤5.2 设置专业版启动图标5.3 卸

2020-05-19 23:27:13 9410 1

原创 编辑器vim基础操作

编辑器vimvi简介vi是“Visual interface”的简称,它在Linux上的地位就仿佛Edit程序在DOS上一样。它可以执行输出、删除、查找、替换、块操作等众多文本操作,而且用户可以根据自己的需要对其进行定制。Vi不是一个排版程序,它不象Word或WPS那样可以对字体、格式、段落等其他属性进行编排,它只是一个文本编辑程序。 vi没有菜单,只有命令,且命令繁多。Vi有三种基本工作模式:+ 命令模式+ 文本输入模式+ 末行模式。 命令行模式任何时候,不管用户处于何种模式,只要

2020-05-17 21:48:25 204

空空如也

空空如也

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

TA关注的人

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