第三次本周总结
目录
本周总结
正则表达式
前戏
校验一串字符是否是自己需要的,例如手机号校验
字符组
[0123456789]
[0-9]
[a-z]
[A-Z]
[0-9a-zA-Z]
特殊符号
. 匹配除换行符以外的所有字符
\w 字母数字下划线
\W 除了字母数字下划线
\d 匹配数字
^ 匹配字符串的开头
$ 匹配字符串的结尾
两者结合使用可以非常精确的限制匹配的内容
a|b 匹配a或b(或)
() 给正则表达式分组,不影响表达式的匹配功能
[] 字符组,内部填写的内容默认都是或的关系
[^] 取反操作,匹配除了字符组里面的其他所有字符
注意上尖号在中括号内和中括号外意思完全不同
量词
* 匹配零次或多次
+ 匹配一次或多次
? 匹配零次或一次,主要用于非贪婪匹配
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n次到m次
ps:量词必须结合表达式一起使用 不能单独出现 并且只影响左边第一个表达式
贪婪匹配与非贪婪匹配
量词都默认贪婪匹配,加?之后变非贪婪匹配
转义符
\\n \n
\\\n \\n
python里可以在前面加r取消转义
实战建议
只要懂得逻辑就行,别人已经写好了,要看懂
re模块
import re
re.findall # 查找所有符合正则表达式要求的数据,结果返回一个列表
re.finditer # 查找所有符合正则表达式要求的数据,结果返回一个迭代器对象
re.search # 匹配到一个符合条件的数据就立刻结束
re.match # 匹配字符串的开头 如果不符合后面不用看了
re.compile # 当某一个正则表达式需要频繁使用的时候 我们可以做成模板
re.split # 分割
re.sub # 替换数字,可设定个数
re.subn # 替换数字并返回替换了多少次,返回元组
res = re.findall('www.(baidu|oldboy).com', 'www.oldboy.com')
print(res) # ['oldboy'] findall分组优先展示:优先展示括号内正则表达式匹配到的内容
# 2.分组别名
res4 = re.search('www.(?P<content>baidu|oldboy)(?P<hei>.com)', 'www.oldboy.com')
爬虫简介
网络爬虫:通过编写代码模拟浏览器发送请求获取数据并按照自己指定的要求筛选出想要的数据
第三方模块的下载与使用
别人写的模块 一般情况下功能都特别强大
如果想使用 要先下载再导入
1.pip工具
版本名字
2.下载句式
pip install 模块名==版本号 -i 仓库地址
3.pycharm提供快捷方式
4.报错百度
requests模块
import requests
res.get(网址)
res.encoding = 'utf8' # 指定编码
print(res.text)
openpyxl模块
'''学会看官方文档'''
from openpyxl import Workbook
# 创建一个excel文件
wb = Workbook()
# 在一个excel文件内创建多个工作簿
wb1 = wb.create_sheet('学生名单')
wb2 = wb.create_sheet('舔狗名单')
wb3 = wb.create_sheet('海王名单')
# 还可以修改默认的工作簿名称
wb4 = wb.create_sheet('富婆名单', 0)
# 还可以二次修改工作簿名称
wb4.title = '高富帅名单'
wb4.sheet_properties.tabColor = '1072BA'
# 填写数据的方式1
wb4['F4'] = 666
# 填写数据的方式2
wb4.cell(row=3, column=1, value='jason')
# 填写数据的方式3
wb4.append(['编号', '姓名', '年龄', '爱好']) # 表头字段
wb4.append([1, 'jason', 18, 'read'])
wb4.append([2, 'kevin', 28, 'music'])
wb4.append([3, 'tony', 58, 'play'])
wb4.append([4, 'oscar', 38, 'play'])
wb4.append([5, 'jerry', 'play'])
wb4.append([6, 'tony', 88, 'play', '哈哈哈'])
# 填写数学公式
wb4.cell(row=12, column=1, value=12321)
wb4.cell(row=13, column=1, value=3434)
wb4.cell(row=14, column=1, value=3455)
wb4.cell(row=15, column=1, value=65647)
wb4['A16'] = '=sum(A12:A14)'
wb4.cell(row=6, column=6, value='=sum(A12:A14)')
# 保存该excel文件
wb.save(r'111.xlsx')
hashlib加密模块
加密算法基本操作
import hashlib
# 1.选择加密算法
md5 = hashlib.md5()
# 2.传入明文数据
md5.update(b'hello')
res = md5.hexdigest()
print(res) # 5d41402abc4b2a76b9719d911017c592
1.加密算法不变 内容如果相同 那么结果肯定相同
2.加密之后的结果是无法反解密的
3.加盐处理
4.动态加盐
5. 1.用户密码加密
2.文件安全性校验
3.文件内容一致性校验
4.大文件内容加密
截取部分内容加密即可
subprocess模块
import subprocess
res = subprocess.Popen(
'name', # 操作系统要执行的命令
shell=True, # 固定配置
stdin=subprocess.PIPE, # 输入命令
stdout=subprocess.PIPE, # 输出结果
)
print('正确结果',res.stdout.read().decode('gbk')) # 获取操作系统执行命令之后的正确结果
print('错误结果',res.stderr) # 获取操作系统执行命令之后的错误结果
logging日志模块
1.产生日志
2.过滤日志
3.输出日志
4.日志格式
import logging