Beautiful Soup库简介 Beautiful Soup 简称 BS4(其中 4 表示版本号)是一个 Python 中常用的页面解析库,它可以从 HTML 或 XML 文档中快速地提取指定的数据。 相比于之前讲过的 lxml 库,Beautiful Soup 更加简单易用,不像正则和 XPath 需要刻意去记住很多特定语法,尽管那样会效率更高更直接。 对大多数 Python 使用者来说,好用会比高效更重要。 Beautiful Soup库为第三方库,需要我们通过pip命令安装: 1pip install bs4 BS4 解析页面时需要依赖文档解析器,所以还需要一个文档解析器。 Python 自带了一个文档解析库 html.parser, 但是其解析速度稍慢,所以我们结合上篇内容(Python 文档解析:lxml库的使用),安装 lxml 作为文档解析库: 1pip install lxml Beautiful Soup库方法介绍 使用 bs4 的初始化操作,是用文本创建一个 BeautifulSoup 对象,并指定文档解析器: 123456789101112131415fro ...
lxml库简介 lxml 是 Python 常用的文档解析库,能够高效地解析 HTML/XML 文档,常用于 Python 爬虫。 lxml 为第三方库,需要我们通过pip命令安装: 1pip install lxml lxml库方法介绍 lxml 库提供了一个 etree 模块,该模块专门用来解析 HTML/XML 文档,让我们先导入模块: 1from lxml import etree 使用 etree 模块的 HTML() 方法可以创建 HTML 解析对象: 123from lxml import etreeparse_html = etree.HTML(html) HTML() 方法能够将 HTML 标签字符串解析为 HTML 文件,并且可以自动修正 HTML 文本: 12345678910111213141516from lxml import etreehtml_str = '''<div> <ul> <li><a href="www.python.org"&g ...
requests库简介 requests 是 Python 中比较常用的网页请求库,主要用来发送 HTTP 请求,在使用爬虫或测试服务器响应数据时经常会用到,使用起来十分简洁。 requests 为第三方库,需要我们通过pip命令安装: 1pip install requests requests库方法介绍 下表列出了requests库中的各种请求方法: 方法 描述 delete(url, args) 发送 DELETE 请求到指定 url get(url, params, args) 发送 GET 请求到指定 url head(url, args) 发送 HEAD 请求到指定 url patch(url, data, args) 发送 PATCH 请求到指定 url post(url, data, json, args) 发送 POST 请求到指定 url put(url, data, args) 发送 PUT 请求到指定 url request(method, url, args) 发送指定的请求方到指定 url 每次调用 reques ...
turtle 简介 turtle库是 turtle 绘图体系 Python 的实现,turtle 库是 python 的标准库之一,属于入门级的图形绘制函数库。 turtle 库绘制原理:有一只海龟在窗体正中心,在画布上游走,走过的轨迹形成了绘制的图形,海龟由程序控制,可以自由改变颜色、方向宽度等。 官方文档地址:https://docs.python.org/3/library/turtle.html turtle 基础知识 画布 画布(canvas)就是 turtle 为我们展开用于绘图区域,我们可以设置它的大小和初始位置。 我们可以通过screensize函数来设置画布的大小和背景颜色: 1turtle.screensize(canvwidth=None, canvheight=None, bg=None) 其中screensize函数的三个参数分别表示画布的宽、高和背景颜色。 或者通过setup函数来设置: 1turtle.setup(width=0.5, height=0.75, startx=None, starty=None) 其中参数width,height:输入宽和 ...
NumPy简介 NumPy(Numerical Python的简称)是Python数值计算最重要的基础包。大多数提供科学计算的包都是用NumPy的数组作为构建基础。 NumPy的部分功能如下: ndarray,一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组。 用于对整组数据进行快速运算的标准数学函数(无需编写循环)。 用于读写磁盘数据的工具以及用于操作内存映射文件的工具。 线性代数、随机数生成以及傅里叶变换功能。 用于集成由C、C++、Fortran等语言编写的代码的API。 NumPy对于数值计算特别重要的原因之一,是因为它可以高效处理大数组的数据。这是因为: NumPy是在一个连续的内存块中存储数据,独立于其他Python内置对象。NumPy的C语言编写的算法库可以操作内存,而不必进行类型检查或其它前期工作。比起Python的内置序列,NumPy数组使用的内存更少。 NumPy可以在整个数组上执行复杂的计算,而不需要Python的for循环。 在jupyter notebook中运行以下代码,可以比较NumPy数组和Python列表的数据运算效率: 12345 ...
学习笔记
未读类与对象 Python 是一种面向对象的编程语言。 Python 中的几乎所有东西都是对象,拥有属性和方法。 类(Class)类似对象构造函数,或者是用于创建对象的“蓝图”。 在现实生活中,类是所有同种物体的统称,如:人类、鸟类等。 而对象则是一个类中的具体的一个个体,如:人类小明是人类的具体个体。 类的定义 在Python中,定义一个类的格式如下: 123456class ClassName: <statement-1> . . . <statement-N> 通常类中还包含一个初始化函数,帮助我们初始化对象的属性: 123456class ClassName: def __init__(self, ···): ··· ··· ··· ··· 让我们定义一个学生类,并实例化出一个对象: 1234567class Student: # self 代表类的当前实例 def __init__(self, name, age, ID): self.name = name self.age ...
常用函数 使用random库主要目的是生成随机数,因此,只需要查阅该库的随机数生成函数,找到符合使用场景的函数使用即可。这个库提供了不同类型的随机数函数,所有函数都是基于最基本的random.random()函数扩展而来。 random库中的常用函数如下: 函数 描述 seed(a=None) 初始化随机数种子,默认值为当前系统时间 random() 生成一个[0.0,1.0)之间的随机小数 randint(a, b) 生成一个[a,b]之间的整数 getrandbits(k) 生成一个k比特长度的随机整数 randrange(start,stop[, step]) 生成一个[start, stop)之间以step为步数的随机整数 uniform(a, b) 生成一个[a, b]之间的随机小数 choice(seq) 从序列类型(例如:列表)中随机返回一个元素 shuffle(seq) 将序列类型中元素随机排列,返回打乱后的序列 sample(pop,k) 从pop类型中随机选取k个元素,以列表类型返回 生成随机数之前可以通过seed ...
学习笔记
未读try-except 语句 Python解释器在运行出现异常时,会返回异常信息,告诉我们错误出现在哪一行,错误类型是什么,具体原因是什么。 在异常可能发生的地方添加异常处理程序,对于用户明确错误是一种好方法。 Python使用try-except语句实现异常处理,基本的语法格式如下: 12345678try: <<<语句块1>>>except <<<异常类型>>>: <<<发生异常执行的语句>>>else: <<<没有发生异常执行的语句>>>finally: <<<不管有没有异常都要执行的语句块>>> 1234567891011# 分别输入 No 和 5 试试看:try: alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" idx = int(input("请输入一个整数: ")) print(alphabet[idx ...
学习笔记
未读整型 什么是整型 整型,即整数类型,用于表示整数的数据类型,通常指 int 类型,广义上包括长整型 long long、无符号整型 unsigned int 等整数类型。 整型的存储大小与存储范围 以64位计算机为例 类型 存储大小 存储范围 int 4字节 -231 到 231-1 unsigned int 4字节 0 到 232-1 long 4字节 -231 到 231-1 unsigned long 4字节 0 到 232-1 long long 8字节 -263 到 263-1 unsigned long long 8字节 0 到 264-1 代码实例 12345678910111213141516171819202122232425262728#include <stdio.h>int main(){ int a = -2147483647 - 1; int b = 2147483647; printf("int可表示的范围:%d ~ %d\n", a, b); u ...