Python知识点复习和回顾

1.python基础知识

pandas常用函数清单: 1.import模块导入;2.文件读取(数据导入)3.数据预处理 4.数据筛选 5.数据运算与排序 6. 常用的统计函数

Python数据分析学习路径图 : 1.基础知识和正则表达式 2.数据采集和收集(爬虫)3. 数据分析 4. 数据可视化

python的基础知识归纳梳理(便于复习和查漏)

(1)关于序列: (list, string, tuple)

操作包括: 索引、切片、加、减、成员操作、最大最小值、长度等

需要注意的是关于tuple的属性:成员不可更改,不过对于a = (1,2,[1,2,3],4)中a的直属子元素不可更改,不过可以尝试a[2].append(3)结果是可更改的;tuple定义单个元素b = (2,), 其中的“,”不可省略。

list: 生成方式还有列表推导式[x*x for x in range(1,10,2)]

dict: 关于爬虫headers和params的定义(复制的信息进行更改)

Python知识点复习和回顾_第1张图片

(2)强大的内建函数

map() :  map(函数, 序列),函数作用于序列的每一个元素。返回序列

reduce() 累计操作:  累计的方式取决于传入的函数;返回一个元素

filter() 筛选: 用公式(函数)对序列进行筛选,输出筛选值。

map(str,[1, 2, 3, 4, 5, 6, 7, 8, 9])

['1', '2', '3', '4', '5', '6', '7', '8', '9']

reduce(lambda x, y: x+y, [1,2,3,4,5]) # 使用 lambda 匿名函数  ;结果:15

defis_odd(n):

     returnn %2==1

filter(is_odd, [1,2,4,5,6,9,10,15])# 结果: [1, 5, 9, 15]

(3)基础操作技巧与规范

[1]定义函数需要对于函数的功能与参数进行定义说明;

[2]对于元素的属性操作忘记了,可以通过dir()函数进行查看;help(function)

[3] 熟悉防御式编程,使用try...except...;

当然exception的类型需要自己去了解。

(4)需要进一步继续学习和了解

迭代器:生成器(Generator),可通过next()调用;定义时包含yeild: a 输出a ,并保存a的状态。

继承和函数装饰器:一个允许在已有

类上进行更改和丰富类的属性;装饰器为函数添加附加功能,并不修改源码以及调用方式。


2.python爬虫相关知识复习

(1)基础了解性知识

URI 分为url 和urn 两种, 比较常用的是url,因此广为熟知。

HTTP//HTTPS : 区别加入了SSL层(CA证书认证)**牛逼的特例 12306。

网页的组成

HTML: 网页的骨架(内容与结构) tag 通过标签的不同排序和嵌套

CSS: 皮肤(布局) 层叠样式表 目前唯一的网页排版样式 (# .)

Javascript:肌肉(行为) 脚本语言  页面的交互和动态效果


spider: 获取网页 => 提取信息 => 保存数据 => 自动化程序(快速获取大量数据)

为了保持HTTP的链接状态: cookies 和会话技术;cookies保存在用户本地,是网站用于用户身份识别的标识,会话是服务器端用来存储特定用户会话的属性以及配置信息,会话终止和过期之前一直有效。

(2)基本库的使用(urllib//requests)

A.Urilib库

urllib : python3中已将urllib库进行了整合,统一为urllib,主要有四个模块:

    request:HTTP 请求模块

    error: 异常处理

    parse: 工具模块,熟知的有urllib.parse.unicode(); 包括拆分,解析,合并

    robotparser: 识别网站robots.txt文件


(1) request:HTTP 请求模块

[1] .urlopen()

        urllib.request.urlopen(url, data=None, [timeout=]*, cafile=None, capath=None, cadefault=False, context=None)

[2]Request:构造请求

        urllib.request.Request(url, data= None, headers={}, origin_req_host=None, unverfiable=False, method=None)

[3]高级用法: cookie 和 proxy 代理设置

         强大的Handler,可以构造各种处理器,如专门登陆验证,cookies,proxy代理;

*** urllib.request模块里的BaseHandler类,所有Handler的父类提供最基本的方法,如default_open(), protocol_request()等

            常用的有:

            HTTPDefaultErrorHandler: HTTP响应错误 #

            HTTPRedirectHandler:    重定向 #

            HTTPCookieProcessor:    cookies

            ProxyHandler:            proxy代理

            HTTPPasswordMfr:        管理密码

            HTTPBasicAuthHandler:    管理认证,链接的认证

(2)error: 异常处理

URLError: 继承于OSError,是request模块异常的基类(包含最广的) ,具有 .reason(属性); HTTPError: URLError的子类,用于捕获HTTP 请求错误

(3)parse: 工具模块,熟知的有urllib.parse.unicode(); 包括拆分,解析,合并

(4)robotparser: 识别网站robots.txt文件 ;判断爬虫是否有权限爬取此网页


B.requests库

(1).get()

    req = requests.get(url, params={}, headers={}, proxies={} ,)

    req.text; req.content; req.status_code, req.cookies

    (2) post() 上传文件

    file = {}

    r = requests.post(url, file=files)

    (3) .session() 会话维持

    s = requests.session()

    req = s.get(url,...)

    (4) SSL证书认证

    a. 参数设置varify=False, 忽略证书错误;

    b. 加载本地证书: 参数设置, cert=("server.crt路径", "key路径")

    (5) 代理设置

    proxies ={"http":"http://user:password@host:port", }

    (6) 超时设置 timeout=

    (7) 身份认证

    (8) Prepared Request

    urllib库可同通过 urllib.request.Request(url) => request请求 => reponse = urllib.rquest.urlopen(rquest)

    同样: requests库同样支持,

   from requests import Request, session

    url = " "

    s = session()

    req = Request("post", url, data=data, headers=headers)

    prepped = s.prepped_request(req)

    r = s.send(prepped)

你可能感兴趣的:(Python知识点复习和回顾)