目录
推导式
(一)什么是推导式
〉推导式是从一个或者多个迭代器快速简洁地创建数据结构的一种方法
〉将循环和条件判断结合,从而避免语法冗长的代码
〉可以用来生成列表、字典和集合
(二)推导式基本语法
〉列表推导式
[<表达式> for <变量> in <可迭代对象> if <逻辑条件>]
〉字典推导式
{
<键值表达式>:<元素表达式> for <变量> in <可迭代对象> if <逻辑条件>}
〉集合推导式
{
<元素表达式> for <变量> in <可迭代对象> if<逻辑条件>}
(三)生成器推导式
〉与推导式一样语法:
(<元素表达式> for <变量> in <可迭代对象> if<逻辑条件>)
〉返回一个生成器对象,也是可迭代对象
〉但生成器并不立即产生全部元素,仅在要用到元素的时候才生成,可以极大节省内存
生成器函数
(一)什么是生成器
〉生成器(generator)是用来创建Python序列的一个对象
〉使用它可以迭代庞大的序列,且不需要在内存中创建和存储整个序列
〉通常生成器是为迭代器产生数据的
迭代器的一种实现
(二)生成器函数
〉如果要创建一个比较大的序列,生成器推导式将会比较复杂,一行表达式无法容纳,这时可以定义生成器函数
〉生成器函数与普通函数
生成器函数的定义与普通函数相同,只是将return换成了yield
yield与return
yield语句
① 立即返回一个值
② 下一次迭代生成器函数时,从yield语句后的语句继续执行,直到再次yield返回,或终止
return语句
终止函数的执行,下次调用会重新执行函数
〉协同程序
可以运行的独立函数调用,函数可以暂停或挂起,并在需要的时候从离开的地方继续或重新开始
〉函数even_number返回一个生成器对象
网络爬虫
(一)搜索引擎蜘蛛
〉 爬虫是按照一定规则,自动地提取并保存网页中信息的程序蜘蛛沿着网络抓取猎物
通过一个节点之后,顺着该节点的连线继续爬行到下一个节点,最终爬完整个网络的全部节点
〉 通过向网站发起请求获取资源,提取其中有用的信息
(二)requests库
〉 Python实现的一个简单易用的HTTP库
支 持 HTTP持 久 连 接 和 连 接 池 、 SSL证 书 验 证 、cookies处理、流式上传等
〉 向服务器发起请求并获取响应,完成访问网页的步骤
〉 简洁、容易理解,是最友好的网络爬虫库
〉 http请求类型
requests.request():构造一个请求
requests.get():获取HTML网页
requests.head():获取HTML网页头信息
requests.post():提交POST请求
requests.put():提交PUT请求
requests.patch():提交局部修改请求
requests.delete():提交删除请求
requests.options():获取http请求
〉 返回的是一个response对象
〉 response对象
包含服务器返回的所有信息,例如状态码、编码形式、文本内容等&#x