目录
一、图像处理库
1.Pillow库
Python里的图像处理库
PIL:Python Image Library
功能强大,可以对图像做各种处理
缩放、裁剪、旋转、滤镜、文字、调色板等等
2.图像处理步骤
a.打开图像
image.open(<路径+图像名+文件格式>)
Pillow库能自动根据文件内容确定格式
若图片在程序目录下,则不需要附带路径,直接将图像名+文件格式作为参数
b.处理图像
image模块中提供了大量处理图像的方法
c.存取或显示图像
im.show()
im.save(<文件名>)
3.缩略图
thumbnail函数
thumbnail(size,Image.ANTIALIAS)
参数size为一个元组,指定了生成缩略图的大小
直接对内存中的原图进行了修改,但是修改完后的图片需要保存,处理后的图片不会被拉伸
4.模糊效果
5.添加文字
6.生成验证码
from PIL import Image, ImageDraw, ImageFont, ImageFilter
import random
# 随机字母:
def rndChar ():
return chr (random. randint (65, 90))
# 随机颜色1:
def rndColor():
return (random. randint (64, 255),\
random. randint (64, 255),\
random. randint (64, 255))
# 随机顔色2:
def rndColor2():
return (random. randint (32, 127),\
random. randint (32, 127),\
random. randint (32, 127))
# 240x 60:
width = 60*4
height = 60
image = Image.new('RGB', (width, height), (255, 255, 255))
#創建Font対象:
font = ImageFont.truetype('Arial.ttf',36)
#创建Draw对象:
draw = ImageDraw. Draw( image)
#填充每个像素:
for x in range(width) :
for y in range (height):
draw. point ((x, y), fill=rndColor ( ))
# 输出文字:
for t in range (4) :
draw. text ( (60 * t + 10, 10), rndChar(), font=font, fill=rndColor2())
#模糊:
image = image. filter (ImageFilter. BLUR)
image.save( 'code.jpg', 'jpeg')
随机生成:
二、Web服务框架
1.Web应用
Web应用已经成为目前最热门的应用软件形式
Web应用通过Web服务器提供服务,客户端采用浏览器或者遵循HTTP协议的客户端
由于需要处理HTTP传输协议,很多Web开发框架涌现
2.框架
Web服务器会处理与浏览器客户端交互的HTTP协议具体细节,但对具体内容的处理还需要自己编写代码
一个web框架至少要具备处理浏览器客户端请求和服务端响应的功能
3.框架的特性
一个框架可能具备以下特性中的一种或多种
a.路由
解析URL并找到对应的服务端文件或者python服务器代码
b.模板
把服务端数据合并成HTML页面
c.认证和授权
处理用户名、密码和权限
d.Session
处理用户在多次请求之间需要存储的数据
4.Flask框架
Flask是一种非常容易上手的python web开发框架,功能强大,支持很多专业web开发需要的扩展功能
有facebook认证和数据库集成
只需要具备基本的python开发技能就可以开发出一个web应用来
简单应用:
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
return "Hello World"
if __name__=="__main__" :
app.run()
5.表单插件Flask-WTF
关于表单的扩展库
使用Flask-WTF时,每个表单都抽象成一个类
三、网络爬虫
1.搜索引擎蜘蛛
爬虫是按照一定的规则,自动地提取并保存网页中信息的程序
蜘蛛沿着网络抓取猎物
通过一个节点之后,顺着该节点连线继续爬行到下一个节点,最终爬完整个网络的全部节点
通过向网站发起请求获取资源,提取其中有用的信息
2.requests库
Python实现的一个简单易用的HTTP库
支持HTTP持久连接和连接池、SSL证书验证、cookies处理、流式上传等
向服务器发起请求并获取响应,完成访问网页的步骤
简洁、容易理解,是最友好的网络爬虫
定制请求头:
requests的请求接口有一个名为handers的参数,向它传递一个字典来完成请求头定制
设置代理:
一些网站设置了同一 IP访问次数的限制,可以在发送请求时指定proxies参数来替换代理,解决这一问题
3.Beautiful Soup
页面解释器:
使用requests库下载了网页并转换成字符串后,需要一个解析器来处理HTML和XML,解析页面格式提取有用的信息
解析器类型:
搜索方法:
4.爬虫的基本流程
a.分析网页结构
b.爬取页面
通过requests库向目标站点发送请求,若对方服务器正常使用,能够收到一个response对象,它包含了服务器返回的所有信息
c.解析页面
HTML代码-网页解析器
Json数据-json模块,转化成json对象
二进制数据-以web形式写入文件,再做进一步处理
四、绘制数据图表
1.numpy库
numpy是python用于处理大型矩阵的一个速度极快的数字库
可以做向量和矩阵的运算,包括各种创建矩阵的方法,以及一般的矩阵运算、求逆、求转置
它的很多底层的函数都是用c写的,可以得到在普通python中无法达到的运行速度
a.方法
b.属性
2.matplotlib绘图库
matplotlib是python的一个绘图库,它包含了大量的工具,可以使用这些工具创建各种图形
简单的散点图、折线图,甚至是三维图形、动画等
3.绘制函数图像的基本思路
基本思路:
通过将图像上的一些点的坐标连接起来,即可绘制函数的近似图像,当点越多时,返回图像越接近函数图像
numpy的linspace()函数生成数组:
numpy.linspace(<start>,<stop>,<num>)
生成一个存放等差数列的数组,数组元素为浮点型,包含三个参数,分别是:数列起始值、终止值(默认包含自身)、数列元素个数
matplotlib库的plot()函数来画图:
可以设定图形,颜色,线条线型以及做标注等
4.plot()函数的绘画样式参数
5.标签图例
坐标轴标签:
plt.xlabel()\plt.ylabel()
图形标题:
plt.title()
6.散点图
7.直方图
五、上机练习
太难了,不会,以后学了更多的东西可以回来试试