内置标准模块
Python标准库中包括了许多模块,从Python语言自身特定的类型到一些只用于少数程序的模块,本节主要介绍基础阶段常见的内置标准模块。
sys模块是Python标准库中最常用的模块之一。通过它可以获取命令行参数,从而实现从程序外部向程序内部传递参数的功能,也可以获取程序路径和当前系统平台等信息。
在导入模块时,用户省略了模块文件的路径和扩展名,但Python解释器可以找到对应的文件,这是因为Python解释器会按特定的路径来搜索模块文件,用户可以通过sys.path获取搜索模块的路径.
platform模块提供了很多方法用于获取有关开发平台的信息,如例所示。
random模块用于生成随机数,其中常用的函数如表所示。
random模块中主要函数的用法,如例所示。
科学计算的numpy库
NumPy简介
是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库,是高性能科学计算和数据分析的基础包。
标准的Python中用list(列表)保存值,可以当做数组使用,但因为列表中的元素可以是任何对象,所以浪费了CPU运算时间和内存。
NumPy诞生为了弥补这些缺陷。它提供了两种基本的对象:
**ndarray:**是储存单一数据类型的多维数组。
ufunc: 它是一种能够对数组进行处理的函数。
NumPy的官方文档:
https://docs.scipy.org/doc/numpy/reference/
python网络爬虫
爬虫简介:网页爬取,就是把url地址中指定的网络资源从网络流中读取出来,保存到本地。请求网站并提取数据的自动化程序。
HTTP协议简介:超文本传输协议是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。
HTTP协议概述:HITP是一个客户端终端(用户)和服务器端(网站)请求和应答的标准(TCP)。通过使用网页浏览器、网络爬虫或者其它的工具,客户端发起一个HTTP请 求到服务器上指定端口(默认端口为80)。 我们称这个客户端为用户代理程序(user agent)。应答的服务器上存储着一些资源, 比如HTML文件和图像。 我们称这个应答服务器为源服务器(origin server) 。在用户代理和源服务器中间可能存在多个“中间层”,比如代理服务器、网关或者隧道(tunne1) 。
HTTP工作过程:HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求报文, 请求报文包含请求的方法、Url、协议版本、请求头部和请求数据。服务器以一个状态行作为响应,响应的内容包括协议的版本、成功或者错误代码、服务器信息、响应头部和响应数据。
(1)客户端与服务器建立连接。
(2)发送HTTP请求。
(3)服务器接到请求后,给子相应的响应信息。
(4)释放连接TCP连接。
(5)客户端接收服务器所返回的信息,浏览器解析并显示网页。
爬虫过程
1.发起请求
2.获取响应内容
3.解析内容
4.保存数据
HTTP请求方法:
HTTP1.0定义三种请求方法:GET,POST,HEAD方法。
HTTP1.1新增六种请求方法:OPTTONS,PUT,PATCH,DELETE,TRACE和CONNECT方法。
包的概念
Python的程序由包、模块和函数组成。包是由一系列模块组成的集合,模块是处理某一类问题的函数和类的集合,它们之间的关系如图所示。
Python提供了许多有用的工具包,如字符串处理、Web应用、图像处理等,这些自带的工具包和模块安装在Python的安装目录下的Lib子目录中。包是一个至少包含__int__.py文件的文件夹,init.py文件一般用来进行包的某些初始化工作或者设置__all__值,其内容可以为空。
假设首先在包pack中创建两个子包:pack1和pack2,然后在包pack1中定义模块myModule1,在包pack2中定义模块myModule2,最后在包pack中定义一个模块main,调用子包pack1和pack2中的模块,具体结构如下所示: