python中正则(.*?)的用法以及requests库的.text和.content的区别
1.(.*?)的用法
先看代码演示
import re
a="hello22222222world3333333world444444"
p1=re.findall("hello(.*?)world",a)
p2=re.findall("hello(.*)world",a)
p3=re.findall("hello.*world",a)
p4=re.findall("hello.*?world",a)
print('p1 = ',p1)
print('p2 = ',p2)
print('p3 = ',p3)
print('p4 = ',p4)
p1 = ['22222222']
p2 = ['22222222world3333333']
p3 = ['hello22222222world3333333world']
p4 = ['hello22222222world']
加问号与不加问号的区别
加问号:非贪婪匹配 即符合匹配的最短结果
不加问号:贪婪匹配 即符合匹配的最长结果
加括号与不加括号的区别
加括号: 即获取的只是括号内的匹配结果
不加括号:即获取的是括号内容和括号外面你写的东东
2、r.text和r.content的区别
这里的r指的是你获得的服务器的响应(r=requests.get(url))
r.text | 返回的是Unicode型的数据。经常用于获取文本 |
---|---|
r.content | 返回的是bytes型也就是二进制的数据。常用于获取图片,文件,图片保存在文件的时候需要加使用’b’ |