python_20190407
1. 关于python基础元素可分为:
数字类型num; 字符串str; 列表list;元组tuple; 字典dict; 集合set;
其中属于序列的有:str, list, tuple, 通用操作有索引,切片,加法乘法,成员操作,最大/最
小值,长度
需要说明的是集合set 可实现元素的去重,不过集合是无序的;
set和dict 的“区别”:set{1,2,er} ;dict {key1:value1, key2:value2,....}, set 中无键值
set“关系判断”需求:(类似于数学中的集合操作),包括但不仅限于:交集、差集、并集
dir()函数:可直接获取对象模块的属性列表
if 函数的三目运算符,可以减少代码量 eg: b = 1 if a > 10 else 0
较为详细的说明可参考:Python中几个以“__”开头的方法介绍总结
关于python基础归纳:python基础
2. requests模块
.get() , .post() 请求
其中可设置的参数包括 url, parmars, headers, proxies,timeout,cookies等。
.session() 会话对象用来保持cookie,不过方法级别的参数也不会被跨请求保持(详情)
知识点更新: 1. 解析json响应:reponse.json 方法同json.loads(response.text)
2. 证书验证设置 verify=False
3. 超时异常捕获:requests.get('http://httpbin.org', timeout=0.1)
4. 使用try...except ...: ReadTimeout, HTTPError,RequestException
5.requests.post的files参数 : python的requests发送/上传多个文件
文件的写入操作:
1. os模块的基础操作
(1). 文件写入读取时,路径path = "D:\BaiduNetdiskDownload\text" 路径为电脑中的绝对路径,不过在python中由于“\” 为转义字符,因此可能导致路径名出现错误,有两种方法可以解决:
a.path = r"D:\BaiduNetdiskDownload\text"
b. path = "D:\\BaiduNetdiskDownload\\text"
(2). 较为常用的 命令操作:
检验给出的路径是否真地存:os.path.exists()
if not os.path.exists(path):
os.mkdir(path)
返回一个路径的目录名和文件名:os.path.split() ;分离扩展名:os.path.splitext();
获取路径名:os.path.dirname() ;获取文件名:os.path.basename()
eg os.path.split('/home/swaroop/byte/code/poem.txt') 结果:('/home/swaroop/byte/code', 'poem.txt')
重命名:os.rename(old, new)搭配os.listdir() 所有文件和目录名进行文件名或目录名更改
for root, dirs, files in os.walk(path): # root 当前目录; dirs 当前子目录; files 所有文件名
3. 响应解析
a. bs4
find(name,attrs,recursive,text,**wargs)
find_all(name,attrs,recursive,text,limit,**kwargs) 说白了,find()也就是当limit=1时的find_all()。
select(): 标签,属性,类名,soup.select('p .sister #link1') // 子标签,soup.select("head > title")
b. re 正则
正则表达式(regular expression)就是用一个“字符串”来描述一个特征,然后去验证另一个“字符串”是否符合这个特征。p = pattern = " "
可分类为: 普通字符匹配包括转义;通配符号\d,\w,\s, . , [ ]等;匹配次数{m,n}, ? ,*, + ;
其他含义字符:^ , $ , \b , | , ( )
主要知识点: 贪婪非贪婪 (默认为贪婪模式),“?”
反向引用(回溯) \1, \2...
举例3:表达式 "<(\w+)\s*(\w+(=('|").*?\4)?\s*)*>.*?" 在匹配 "" 时,匹配结果是成功。如果 "" 与 "" 不配对,则会匹配失败;如果改成其他配对,也可以匹配成功。