自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(72)
  • 资源 (2)
  • 收藏
  • 关注

原创 Python多线程爬虫之二:爬取王者荣耀高清壁纸(多线程)

一、项目分析1、查询爬取网址 robots 权限1、王者荣耀官网:https://pvp.qq.com/2、访问王者荣耀官网 rbots 权限: https://pvp.qq.com/robots.txt,确定此网站没有设置 robots 权限,即证明此网站数据可以爬取。2、查询主页和详情页面的关系高清壁纸页面 url :https://pvp.qq.com/web201605/wallpaper.shtml3、查看当前网页源代码4、查询需要爬取的 HTML 结构对应的 js 请求1、查

2021-02-21 00:15:14 2174

原创 Python多线程爬虫之一:多线程基础知识

一、多线程的引入1、什么是多线程默认情况下,一个程序只有一个线程,代码是依次线性执行的,而多线程则可以并发执行,一次性多个人做多件事,所以效率会大幅提升。2、如何创建一个多线程使用 threading 模块下的 Thread 即可创建线程,关于 threading 的介绍,在并发编程中已总结:https://blog.csdn.net/qq_35092730/article/details/1138405933、单线程与多线程运行速度对比1、单线程运行:import timedef re

2021-02-20 02:25:14 376

原创 Python并发编程之五:threading 模块

一、简介multiprocess模块的完全模仿了threading模块的接口,二者在使用层面,有很大的相似性,中文文档链接:https://docs.python.org/zh-cn/3/library/threading.html这个模块在较低级的模块 _thread 基础上建立较高级的线程接口。该模块的设计基于 Java的线程模型。 但是,在Java里面,锁和条件变量是每个对象的基础特性,而在Python里面,这些被独立成了单独的对象。 Python 的 Thread 类只是 Java 的 Th

2021-02-19 00:09:48 519

原创 Python并发编程之四:进程池

一、进程池简介1、定义在python中定义一个池子,在里面放上固定数量的进程,有需求来了,就拿一个池中的进程来处理任务,等到处理完毕,进程并不关闭,而是将进程再放回进程池中继续等待任务。如果有很多任务需要执行,池中的进程数量不够,任务就要等待之前的进程执行任务完毕归来,拿到空闲进程才能继续执行。也就是说,池中进程的数量是固定的,那么同一时间最多有固定数量的进程在运行。这样不会增加操作系统的调度难度,还节省了开闭进程的时间,也一定程度上能够实现并发效果。2、为何要使用进程池在利用Python进行系统管

2021-02-18 00:33:09 374

原创 Python并发编程之三:进程同步、队列和管道

四、守护进程from multiprocessing import Processimport timedef foo(): print(123) time.sleep(3) print("end123")def bar(): print(456) time.sleep(3) print("end456")if __name__ == '__main__': p1=Process(target=foo) p2=Process(t

2021-02-17 01:43:05 318

原创 Python并发编程之二:multiprocessing 模块

一、multiprocessing 模块介绍1、GIL1、GIL 即全局解释器所(global interpreter lock),每个线程在执行时候都需要先获取GIL,保证同一时刻只有一个线程可以执行代码,即同一时刻只有一个线程使用CPU,也就是说多线程并不是真正意义上的同时执行。2、CPython 解释器执行 Python 程序 过程:设置GIL切换到一个线程去运行运行,直至完成指定的字节码指令,或者线程主动让出控制将该线程设置为睡眠状态解锁GIL重复以上所有步

2021-02-16 02:30:58 713

原创 Python并发编程之一:并发编程相关基础概念

一、进程1、定义进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动。它是操作系统动态执行的基本单元,在传统的操作系统中,进程既是基本的分配单元,也是基本的执行单元。2、理解性定义正在进行的一个过程或者说一个任务。而负责执行任务则是cpu。3、任务管理器中的程序都是进程:4、进程的创建系统初始化(查看进程linux中用ps命令,windows中用任务管理器,前台进程负责与用户交互,后台运行的进程与用户无关,运行在后台并且只在需要时才唤醒的进程,称为守护进程,如电子邮件、web页

2021-02-15 03:23:06 230

原创 Python爬虫之二:MySQL 数据库数据处理

一、安装 MySQL 数据库下载地址:https://dev.mysql.com/downloads/installer/5.7.0.html1、下载步骤1、选择操作系统和版本2、选择是否注册2、安装步骤1、选择默认开发,点下一步2、点击确认执行3、安装完成后点击下一步4、配置权限用户5、配置完成后点击下一步6、然后就无脑点下一步、执行和完成就行,安装成功后打开开始按钮:3、安装 PyMySQL1、dos窗口直接输入 pip install PyMySQL2、

2021-02-13 23:04:15 624

原创 Python爬虫之一:Json、CSV 及 Excel 数据处理

一、Json 数据处理JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。简单概括:Json 将数据转换成字符串,用于储存或网络传输。Json 数据在线解析网站: https://www.j

2021-02-11 03:11:32 694 2

原创 Python爬虫之九:用正则表达式爬取赶集网租房信息

一、项目分析1、查询主页和详情页面的关系得出数据关系:每一个 class 属性为 f-list-item ershoufang-list 的 div 包含着整个需要爬取数据的信息,且查询 ershoufang-list 为 42 个,说明这个属性没有重复,与一个页面42个房源信息对应。2、需要爬取的数据的正则特征1、房源信息结论:需要查找的房源信息在 class 属性值为 js-title value title-font 的 a 标签中,因此正则表达式为:<div.+?g-list"

2021-02-10 00:39:28 1034 3

原创 Python爬虫之八:正则表达式

1、re 模块re模块是python独有的匹配字符串的模块,该模块中提供的很多功能是基于正则表达式实现的,而正则表达式是对字符串进行模糊匹配,提取自己需要的字符串部分,他对所有的语言都通用。注意:1.re模块是python独有的2.正则表达式所有编程语言都可以使用3.re模块、正则表达式是对字符串进行操作因为,re模块中的方法大都借助于正则表达式,故先学习正则表达式。2、正则表达式1.正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法。2.正则就是用来描述

2021-02-09 02:01:07 379

原创 Python爬虫之六:Beautiful Soup 4 库

一、简介Beautiful Soup 4 库和 lxml 库一样,是python的一个HTML或XML的解析库,我们可以用它来方便的从网页中提取数据,它拥有强大的API和多样的解析方式。与 lxml 对比:lxml 只会局部遍历,而Beautiful Soup 是基于 HTML DOM 的,它会载入整个文档,解析DOM树,因此时间和内存开销都会很大,所以性能低于 lxml。1、安装Beautiful Soup 4 库1、dos命令窗口输入:pip install bs42、pycharm 中搜索安

2021-02-07 21:54:57 559 1

原创 Python爬虫之四:数据解析

一、XpathXPath 是一门在 XML 和 HTML 文档中查找信息的语言,用于在 XML 和 HTML 文档中通过元素和属性进行导航。谷歌浏览器安装 Xpath Heleper百度一下谷歌浏览器安装 Xpath Heleper,对着操作即可启动快捷键: shift + ctrl + x火狐浏览器安装 Try Xpath百度一下谷歌浏览器安装 Try Xpath,对着操作即可1、XPath 节点在 XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档(根)

2021-02-04 20:31:14 240

原创 Python爬虫之三:爬虫 requests 库的使用

一、requests 的安装1、通过dos窗口,输入:pip install requests 进行安装2、通过pycharm 的 setting 中搜索: resquests 进行安装requests 库的中文文档:https://requests.readthedocs.io/zh_CN/latest/二、发送 get 请求在百度搜索中国,爬取搜索后的网页:import requestsurl = 'https://www.baidu.com/s'headers = { '

2021-02-03 20:03:51 1129

原创 Python项目实践之二:下载数据(CSV和JSON )

Python项目实践之二:下载数据下载数据的可视化着重点在于从网上下载数据进行分析后,进行可视化处理,网上的数据格式多的难以置信,且大多未经过仔细检查,如果能够对这些数据进行分析,你就能发现别人没有发现的规律和关联。一、CSV 文件格式要在文本文件中存储数据,最简单的方式是将数据作为一系列以逗号分隔的值(CSV)写入文件。这样的文件称为CSV文件。例如,下面是一行CSV格式的天气数据:2014-1-5,61,44,26,18,7,-1,56,30,9,30.34,30.27,30.15,,,,10,

2021-01-24 17:32:40 1343 1

原创 Python项目实践之一:生成数据

Python项目实践之一:生成数据数据可视化指的是通过可视化表示来探索数据,它与 数据挖掘紧密相关,而数据挖掘指的是使用代码来探索数据集的规律和关联。数据集可以是用一行代码就能表示的小型数字列表,也可以是数以吉字节的数据。一、安装 Visual Studio 和 matplotlib1、安装Visual Studio官网:https://dev.windows.com/1、登录官网,选择Visual Studio2、根据自己的操作系统选择下载社区免费版即可2、安装 matplotlib1

2021-01-19 20:28:04 454

原创 Python项目实践之五:项目思维总结

Python项目实践之五:项目思维总结《外星人入侵》项目是《Python编程从入门到实践》这本书上的内容,我通过认真阅读此项目,完成了这个小项目,现在把开发过程中的一些心得体会总结一下。一、项目需求每个项目都有自己独特的需求,只有有了需求,我们才知道要怎么通过代码去解决项目的需求。《外星人入侵》项目的需求是:1、飞船:在游戏界面上左右移动,不会移出界面范围2、外星人:外星人以群的方式展现,通过游戏的等级提升,外星人左右和向下移动的速度加快3、子弹:子弹以限定游戏界面最多容纳三颗的方式展现,随着游

2021-01-14 18:13:09 1509

原创 Python爬虫之二:爬虫urllib库的使用(2)

一、urllib 库1 、ProxyHandler处理器(代理设置)很多网站会检测某一时间段某个IP的访问次数(通过流量统计,系统日志等),如果访问次数多的不像正常人操作,它就会禁止这个IP的访问,因此我们要用到ProxyHandler处理器来设置代理。代理服务器原理:请求目的网站前,先通过代理服务器去请求目的网站,代理服务器拿到目的网站的数据后,在返回给我们。提供一个查看访问ip的网站:http://www.httpbin.org/ip此网站可以看到是哪个ip访问了它常用的代理网站有:快代

2021-01-13 22:37:09 1335

原创 Python爬虫之二:爬虫urllib库的使用(1)

一、urllib库urllib是Python自带的标准库,无需安装,可以直接使用。它可以模拟浏览器的行为,向指定的服务器发送一个请求,并可以保存服务器返回的数据。如果想系统性的学习urllib库,可以直接看它的官方文档(https://docs.python.org/3/library/urllib.html)。1、urllib.request 请求模块在Python3的urllib库中,所有的网络请求相关的方法,都被采集到urllib.request模块中。urlopen()函数的使用:创建一个

2021-01-12 00:15:21 3406 2

原创 Python爬虫之一:爬虫基础

一 、爬虫介绍1、什么是爬虫爬虫是一个模拟人类请求网站行为的程序。可以自动请求网页,并把数据爬取下来,然后使用一定的规则提取有价值的数据。2、爬虫的应用场景搜索引擎(百度或者谷歌)伯乐在线惠惠购物助手数据分析抢票软件3、为什么使用python写爬虫程序PHP:PHP是世界上最好的语言,但是他天生不是做这个的,而且对多线程、异步支持不是很好,并发处理能力弱。爬虫是工具性程序,对速度和效率的要求比较高。Java:生态圈完善,是Python爬虫最大的竞争对手,但是Java语言本身很笨重

2021-01-10 22:51:15 347

原创 Python项目实践之四:计分

Python项目实践之四:计分需求:实现一个记分系统,以实时地跟踪玩家的得分,并显示最高得分、当前等级和余下的飞船数。一、显示得分得分是游戏的一项统计信息,因此我们在 GameStats 中的reset_stats()添加一个 score 属性: def reset_stats(self): """初始化在游戏运行期间可能变化的统计信息""" self.ships_left = self.ai_settings.ship_limit self.s

2021-01-10 18:17:39 1452 2

原创 Python项目实践之三:添加 Play 按钮和提高游戏等级

Python项目实践之三:添加 Play 按钮和提高游戏等级现在外星人入侵游戏项目已经实现了武装飞船和外星人群的功能,本章主要添加一些辅助功能,如添加一个开始按钮,计分板信息和随着游戏的进行加快游戏节奏。一、添加 Play 按钮需求:添加 Play 按钮,它在游戏开始前出现,并在游戏结束后再次出现,让玩家能够开始新游戏。需要实现此项功能,我们需要先把game_stats.py中的game_active参数设置成False,在玩家没有按下Play按钮时,游戏处于非活性状态: # 游戏刚启动时处于活

2021-01-07 17:47:32 1362

原创 Python项目实践之二:外星人(2)

Python项目实践之二:外星人接着上篇文章继续写。。。一、射杀外星人我们创建了飞船和外星人群,但子弹击中外星人时,将穿过外星人,因为我们还没有检查碰撞。在游戏编程中,碰撞指的是游戏元素重叠在一起。要让子弹能够击落外星人,我们将使用sprite.groupcollide() 检测两个编组的成员之间的碰撞。1、检测子弹与外星人的碰撞sprite.groupcollide() 函数:检测两个编组成员之间的碰撞,因此,我们只需要检测子弹编组和外星人群编组是否发生碰撞即可。修改game_function

2021-01-05 13:17:08 448 1

原创 Python项目实践之二:外星人(1)

Python项目实践之二:外星人在本文中,我们将在游戏《外星人入侵》中添加外星人。首先,我们在屏幕上边缘附近添加一个外星人,然后生成一群外星人。我们让这群外星人向两边和下面移动,并删除被子弹击中的外星人。最后,我们将显示玩家拥有的飞船数量,并在玩家的飞船用完后结束游戏。一、回顾项目开发较大的项目时,进入每个开发阶段前回顾一下开发计划,搞清楚接下来要通过编写代码来完成哪些任务都是不错的主意。1、alien_invasion.py主文件alien_invasion.py创建一系列整个游戏都要用到的对象

2021-01-03 19:15:35 1052 1

原创 Python项目实践之一:武装飞船

Python项目实践之一:武装飞船一、规划项目1、游戏规则设定在游戏《外星人入侵》中,玩家控制着一艘最初出现在屏幕底部中央的飞船。玩家可以使用箭头键左右移动飞船,还可使用空格键进行射击。游戏开始时,一群外星人出现在天空中,他们在屏幕中向下移动。玩家的任务是射杀这些外星人。玩家将所有外星人都消灭干净后,将出现一群新的外星人,他们移动的速度更快。只要有外星人撞到了玩家的飞船或到达了屏幕底部,玩家就损失一艘飞船。玩家损失三艘飞船后,游戏结束。2、前期准备1、建立项目文件游戏《外星人入侵》将包含很多不同

2021-01-02 19:57:04 4571 8

原创 Python网络编程之六:操作系统发展史及网络编程总结

Python网络编程之一:操作系统详解现代的计算机系统主要是由一个或者多个处理器,主存,硬盘,键盘,鼠标,显示器,打印机,网络接口及其他输入输出设备组成。现代计算机系统是一个复杂的系统。一、为什么要有操作系统程序员无法把所有的硬件操作细节都了解到,管理这些硬件并且加以优化使用是非常繁琐的工作,这个繁琐的工作就是操作系统来干的,有了它,程序员不用去考虑操作系统具体的实现细节,只需要知道操作系统为应用程序留的接口,从而从这些繁琐的工作中解脱了出来,只需要考虑自己的应用软件的编写就可以了,应用软件直接使用

2021-01-01 18:39:27 283 1

原创 Python网络编程之五:socketserver的使用和验证客户端合法性

Python网络编程之五:socketserver的使用和验证客户端合法性一、socketserver的使用1、简介1、socketserver是标准库中的一个高级模块,socketserver模块是python提供的内置的用于快捷开发服务端程序的一个服务器框架,通过封装大量实现的方式减少开发人员工作量的同时能快捷开发出具有较高质量的服务端程序。2、socket并不能多并发,只能支持一个用户,socketserver通过对socket进行封装实现了同步效果。2、四个基本的服务器类1、TCPSer

2020-12-27 23:47:18 523

原创 Python网络编程之四:粘包及文件传输

Python网络编程之四:粘包及文件传输一、粘包1、关于粘包的例子客户端连续发送两条信息给服务端:服务端:import socketsk = socket.socket()sk.bind(('127.0.0.1', 8000))sk.listen()conn, addr = sk.accept()msg1 = conn.recv(1024).decode('utf-8')print('msg1:' + msg1)msg2 = conn.recv(1024).decode('

2020-12-24 23:49:53 229

原创 Python网络编程之三:tcp、udp协议代码实践

Python网络编程之三:tcp、udp协议代码实践一、tcp协议代码第一版:实现简单通信服务端:import socket#参数family和type可以不写,因为socket默认参数是支持tcp协议的sk = socket.socket(family = socket.AF_INET, type = socket.SOCK_STREAM)sk.bind(('127.0.0.1', 8000)) #三次握手sk.listen()conn, addr = sk.accept()c

2020-12-24 02:16:03 353

原创 Python网络编程之二:网络编程基础

Python网络编程之二:网络基础一、基础概念1、两个地址1.1、mac地址mac地址:直译为媒体存取控制位址,也称为局域网地址、MAC位址、以太网地址或物理地址,它是一个用来确认网络设备位置的位址。它是由网卡提供的,MAC地址在全球范围内都是唯一的。1.2、IP地址IP地址:IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。它在局域网内是唯一的。2、局域网局域网是指在某一区域内由多台计算机互联成的计算机组,而且一般局域网可以实

2020-12-23 01:04:25 795

原创 Python网络编程之一:网络编程(《Python基础教程-第3版》读书笔记)

Python网络编程之一:网络编程简介Python提供了强大的网络编程支持,有很多库实现了常见的网络协议以及基于这些协议的抽象层,让你能够专注于程序的逻辑,而无需关心通过线路来传输比特的问题。一、常用的网络模块1、模块 socket低级别的网络服务支持基本的 Socket,它提供了标准的 BSD Sockets API,可以访问底层操作系统Socket接口的全部方法。Socket又称"套接字",应用程序通常通过"套接字"向网络发出请求或者应答网络请求,使主机间或者一台计算机上的进程间可以通讯。

2020-12-21 01:05:07 690

原创 Python面向对象之十二:代码测试

Python面向对象之十二:代码测试编写函数或类时,还可为其编写测试。通过测试,可确定代码面对各种输入都能够按要求的那样工作。测试让你信心满满,深信即便有更多的人使用你的程序,它也能正确地工作。在程序中添加新代码时,你也可以对其进行测试,确认它们不会破坏程序既有的行为。程序员都会犯错,因此每个程序员都必须经常测试其代码,在用户发现问题前找出它们。...

2020-12-10 23:52:45 233

原创 Python面向对象之十一:异常处理

Python面向对象之十一:异常处理异常是指程序在运行过程中出现了意外,导致程序不能正常执行。异常处理机制是指当程序出现错误后的处理方式,如果程序出错后进行异常处理,程序会继续执行后面的代码。一、错误和异常1、语法错误Python 的语法错误或者称之为解析错,#语法错误:print的'p'是小写Print('112233')#语法错误:括号不全print('112233'pycharm编辑器会抛出错误,并且在最先找到的错误的位置标记了一个小小的箭头。2、异常即便程序的语法是正确

2020-12-09 12:46:54 371

原创 Python面向对象之十:函数和方法及双下方法

Python面向对象之十:函数和方法及双下方法一、函数与方法1 、定义1、函数:函数是封装了一些独立的功能,可以直接调用,能将一些数据(参数)传递进去进行处理,然后返回一些数据(返回值),也可以没有返回值。可以直接在模块中进行定义使用。所有传递给函数的数据都是显式传递的。与类和实例无绑定关系的function都属于函数(function)。2、方法:方法和函数类似,同样封装了独立的功能,但是方法是只能依靠类或者对象来调用的,表示针对性的操作。方法中的数据self和cls是隐式传递的,即方法的调用者;

2020-12-07 19:13:30 169

原创 Python面向对象之九:反射

Python面向对象之九:反射反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力(自省)。这一概念的提出很快引发了计算机科学领域关于应用反射性的研究。它首先被程序语言的设计领域所采用,并在Lisp和面向对象方面取得了成绩。一、什么是反射python面向对象中的反射:通过字符串的形式操作对象相关的属性。python中的一切事物都是对象(都可以使用反射)。二、对象的反射1、getattr 获取指定字符串名称的对象属性class Foo:

2020-12-06 23:44:27 283 2

原创 Python面向对象之八:元类

Python面向对象之八:元类一、按区域划分

2020-12-06 19:05:09 145

原创 Python数据处理之一:数据读取

Python数据处理之一:数据读取数据可以存储成许多不同的格式和文件类型。某些格式存储的数据很容易被机器处理,而另一些格式存储的数据则容易被人工读取。微软的Excel、 Word 文档等属于后者,而 CSV、JSON和 XML 文件则属于前者。一、供机器读取的数据以易于机器理解的方式来存储数据的文件格式,通常被称作机器可读的(machine readable)。常见的机器可读格式包括:• 逗号分隔值(Comma-Separated Values,CSV)• JavaScript 对象符号(Jav

2020-12-06 00:55:50 904 3

原创 Python面向对象之七:类成员

Python面向对象之七:类成员一、按区域划分按照类成员的区域划分,分为静态属性(变量)和动态属性(方法):1、静态属性(变量)静态属性是指定义在类中的变量,用了表示类自身的属性1、公有静态属性class Person: name = '晴朗' #公有静态属性 def sleep(self): print(Person.name)class Mother(Person): def temp(self): print(Perso

2020-12-02 22:16:13 308

原创 Python面向对象之六:类的约束和super函数

Python面向对象之六:类的约束和super函数一、类的约束类的约束就是对父类对子类的属性和方法进行一定的约束控制。1、对子类属性的约束(slots)class A: __slots__ = ['a', 'b'] passclass B(A): passa1 = A()a1.a = 10print(a1.a)a1.c = 1000#AttributeError:'A' object has no attribute 'c'b = B()b.c = 100

2020-11-29 23:59:56 229 1

原创 Python面向对象之五:封装和多态

Python面向对象之五:封装和多态python面向对象的三大特性:继承(已学习),封装,多态。一、封装封装是隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读取和修改的访问级别。封装就是将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码进行有机的结合,形成“类”,其中数据和函数都是类的成员。1、简单理解封装顾名思义,封装属性就是把已有的属性封装到一个类里面去:class Person(): def __init__(self, n

2020-11-29 17:16:51 302 2

Python项目实践之二:下载数据(附件).zip

文章:《Python项目实践之二:下载数据》所用到的附件

2021-01-20

外星人入侵源码(项目1).zip

游戏项目:外星人入侵源码

2021-01-10

空空如也

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

TA关注的人

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