百木园-与人分享,
就是让自己快乐。

python知识点详细总结

1.列举python常用的数据结构

字典,集合,列表,字符串,元组

2.字典、集合、列表的区别

列表:

(1)任意对象的有序集合

列表是一组任意类型的值,按照一定顺序组合而成的

(2)通过偏移读取

组成列表的值叫做元素,每一个元素被标识一个索引,第一个索引是0,序列的功能都能实现

(3)可变长度,异构以及任意嵌套

列表中的元素可以是任意类型,甚至是列表类型,也就是说列表可以嵌套

(4)可变的序列

支持索引、切片、合并、删除等操作,塔门都是在原处进行修改列表

(5)对象引用数组

列表可以当成普通的数组,每当用到引用时,Python总是会将这个引用指向一个对象,所以程序只需要处理对象的操作。当把一个对象赋给一个数据结构元素或变量名时,Python总是会存储对象的引用,而不是一个对象的拷贝。

元组:

(1)任意对象的有序集合

与列表相同

(2)通过偏移存取

与列表相同

(3)属于不可变序列类型

类似于字符串,但元组是不可变的,不支持在列表中任何原处修改操作,不支持任何方法调用

(4)固定长度、异构、任意嵌套

固定长度即元组不可变,在不被拷贝的情况长度下固定,与其他同列表

和列表项比较

比列表操作速度快;对数据“写保护”;可用于字符串格式化中,可作为字典的key

字典

(1)通过键而不是偏移量来读取

字典就是一个关联数组,是一个通过关键字索引的对象的集合,使用键-值(key-value)进行存储,查找速度快

(2)任意对象的无序集合

字典中没有特定顺序,以键为象征

(3)可变长、异构、任意嵌套

同列表,嵌套可以包含列表和其他字典等

(4)属于可变映射类型

因为是无序,故不能进行序列操作,但可以在远处修改,通过映射到值。字典是唯一内置的映射类型(键映射到对象)

(5)对象引用表

字典存储的是对象引用,不是拷贝,和列表一样。字典的key是不能变的。list不能作为key,字符串、元组、整数等都可以

和列表相比较,字典的特性:

1.查找和插入的速度极快,不会随着key的增加而增加

2.需要占用大量的内存,内存浪费多

但是列表相反:

1.查找和插入的时间随着元素的增加而增加

2.占用空间小,浪费内存很少

所以字典是用空间来换取时间的一种方法

集合

1.是一组key的集合,但不存储value,并且key不能重复

2。重复元素在集合中自动被过滤

集合可以看成数学意义上的无序和无重复元素的集合,因此,两个集合可以做数学意义上的交集、并集等操作

和字典对比

1.集合和字典的唯一区别仅在于没有存储对应的value

2.集合的原理和字典一样,同样不可以放入可变对象,因为无法判断两个变对象是否相等,也就无法保证集合内部“不会有重复元素”

 

数据抓取时,常用的包和基础框架是什么

Requests 

Selenium

Pyppetter

Aiohttp

Urlib

Gevent

Lxml

Pyquery等等

包:Scrapy    Pysipder

 

 

HTTP是一个基于TCP/IP通信协议来传递数据,包括html文件、图像、结果等,即是一个客户端和服务器端请求和应答的标准

HTTP协议特点

1.http无连接:限制每次连结只处理一个请求,服务端完成客户端的请求后,即断开连接。(传输速度快,减少不必要的连结,但也意味着每一次访问都要建立一次连结,效率降低)

2.http无状态:对事物处理没有记忆能力。每一次请求都是独立的,不记录客户端任何行为(优点解放服务器,但可能每次请求会传输大量重复的内容信息)

3.客户端/服务端模型:客户端支持web浏览器或其他客户端,服务器通常是apache或list等

4.简单快捷

5.灵活:可以传输任何类型的数据

 

客户请求消息:

客户端发送一个请求到服务器的请求消息包括以下格式:

请求行,请求头部,空行,请求数据

 

服务器响应消息:

服务器响应包括如下格式:

状态行,消息报头,空行,响应正文

 

http协议常用的方法是:

1 GET

发送请求来获得服务器上的资源,请求体中不会包含请求数据,请求数据放在协议头中。另外get支持快取、缓存、可保留书签等。幂等

2 POST

和get一样很常见,向服务器提交资源让服务器处理,比如提交表单、上传文件等,可能导致建立新的资源或者对原有资源的修改。提交的资源放在请求体中。不支持快取。非幂等

3 HEAD

本质和get一样,但是响应中没有呈现数据,而是http的头信息,主要用来检查资源或超链接的有效性或是否可以可达、检查网页是否被串改或更新,获取头信息等,特别适用在有限的速度和带宽下。

4 PUT

和post类似,html表单不支持,发送资源与服务器,并存储在服务器指定位置,要求客户端事先知道该位置;比如post是在一个集合上(/province),而put是具体某一个资源上(/province/123)。所以put是安全的,无论请求多少次,都是在123上更改,而post可能请求几次创建了几次资源。幂等

5 DELETE 请求服务器删除某资源。和put都具有破坏性,可能被防火墙拦截。如果是https协议,则无需担心。幂等
6 CONNECT

HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。就是把服务器作为跳板,去访问其他网页然后把数据返回回来,连接成功后,就可以正常的get、post了。

7 OPTIONS 获取http服务器支持的http请求方法,允许客户端查看服务器的性能,比如ajax跨域时的预检等。
8 TRACE 回显服务器收到的请求,主要用于测试或诊断。一般禁用,防止被恶意攻击或盗取信息。
     

 

get和post区别

  GET POST
点击返回/刷新按钮 没有影响 数据会重新提交
缓存/添加书签 可以 不可以
历史记录 没有
编码类型 application/x-www-form-urlencoded

application/x-www-form-urlencoded 

或 multipart/form-data。为二进制数据使用

多重编码

是否幂等 幂等 非幂等
长度限制

http协议没有限制,但是实际浏览器或服务

器有(最大2048)

理论上没有,可能会收到服务器配置或内存限制
数据类型限制 只能ASCII,非ascii都要编码传输 没有限制,允许二进制数据
安全性 数据全部展示在url中,不安全 相比get,通过request body传递数据,比较安全
可见效 可见 不可见

PATCH 和 PUT 比较

  PATCH PUT
是否幂等 非幂等 幂等
粒度 局部,最小粒度,节约网络带宽 所有

简单列举一下scrapy常用的组件

 


来源:https://www.cnblogs.com/Mmingworld/p/15966679.html
本站部分图文来源于网络,如有侵权请联系删除。

未经允许不得转载:百木园 » python知识点详细总结

相关推荐

  • 暂无文章