在这里插入代码片
#1.文件下载
#原理
#图片下载
# import requests
# res=requests.get('http://localhost:8080/woniusales/image/wecode.jpg')
# img=res.content#这个获取的是字节码,和read一样
# img2=res.text#这个获取的是乱码,获取字节码要encode()转码
# # print(img2.encode())
# # print(img)
# f=open('666.jpg','wb')#没有这个图片文件,就是新建。为下载做载体
# img3=f.write(img)
# f.close()
#2.文件上传
#使用request库实现文件上传,上传原理:
#通过文件读取,读取字节码,获取后,通过post请求中的files属性上传
#filedate={
# 'batchfile'(这个是文件上传的那个方法名字,每个不一样,主要是input 的name属性):('xlsfile'(上传的名字,可以随意),open('xlsfile.xls','rb')(打开要长传文件。写入数据))
# }
# fileoj=ses.post(url,data=data,files=filedate)(上传的参数是files)
#
# import requests
# ses=requests.session()
# datelogin={
# 'username': 'admin',
# 'password': 'admin123',
# 'verifycode': '0000'
# }
# url='http://localhost:8080/woniusales/user/login'
# ses1=ses.post(url, datelogin)
# print(ses1.text)#登录成功返回的是:login-pass
#
#
# data={
# 'batchname': 'GB66666666',
# }
# filedate={
# 'batchfile':('xlsfile',open('xlsfile.xls','rb'))
# }
# url='http://localhost:8080/woniusales/goods/upload'
# fileoj=ses.post(url,data=data,files=filedate)
# print(fileoj.text)
#3.正则表达式(regex):制定规则用于匹配,替换检索
# 1.
# 本身就是一个字符串,也是匹配的规则;
# 2.
# 通过给定的字符串在目标字符串或者文件中匹配与其相同的字符串。
# 3.
# 查找、替换、分割等操作。
# 4.
# 正则表达式一般是通过C编译的字节码。
# beautifulsoup4 集成式的正则公式,封装了,使用更方便
# 表达式分为两种类型:普通字符类型,“hello world” 找 “l”
# 元字符:. 指除开\n之外的所有的字符 (.*?)(.+?)
# * 字符出现0次或者多次
# + 字符至少出现一次
# ? 非贪婪模式(匹配结束)
# ^ 必须以什么开始 -->startswith
# $ 以什么结束 -->endswith
# [0-9] 字符是纯数字 -->isdigit isdecimal isnumberic
# \d 纯数字
# \D 非纯数字
# [a-z] 字符是纯小写字母
# [A-Z] 字符是纯大写字母
# [a-zA-Z] 字符是纯字母
# [0-9a-zA-Z] 字符是数字或字母
# [^ab] 除a和b之外的所有字符
# \w 字母或者数字或者下划线"_" --> isalnum()
# \W 非字母或数字
# {n} 字符出现多少次
# {n,m} 最少出现n次,最多出现m次的字符
# {n,} 至少出现n次
# () 分组
import re
#元字符的使用,对象要是字符串
#. 点代表除\n的所有内容
#+号代表的是前面的元字符所表示字符至少出现1次,就是通过\n分割
#*号类似+,但是能把空表示出来
#贪婪模式,就是匹配到最后一个能匹配的
#?非贪婪模式,就是匹配到第一个能匹配的
#^ 找以什么开头的数据
#$ 找以什么结束的数据
#[0-9]和\d找纯数字,\D找非数字,[a-zA-Z]+找纯字母;[0-9a-zA-Z]+找数字和字母
#{}限定长度
#()分组,限定边界
#match() 类似startswith
#search() 判断在不在,在就返回,不在报错抛异常
#findall() 判断某某元素是否在,不在返回空
str='''
qwe
asd
a
123
q
123
22
'''
# li=re.findall('.*',str)
# li=re.findall('.+',str)
# li=re.findall('1.*?3',str)
# li=re.findall('^q.*e$',str,re.M)
li=re.findall('[0-9]+',str,re.M)
li=re.findall('\d+',str,re.M)
li=re.findall('\D+',str,re.M)
li=re.findall('[a-zA-Z]+',str,re.M)
li=re.findall('[0-9a-zA-Z]+',str,re.M)
li=re.findall('.{2,}',str,re.M)
str='<a href=\"www.baidu.com\"><img src=\"/page/img/logo-500px.png\" class=\"img-responsive logo-padding\"></a>' \
'<a href=\"www.qq.com\"><img src=\"/page/img/logo-500px.png\" class=\"img-responsive logo-padding\"></a>'
# li=re.findall('<a href="(.+?)">',str)
#通过面向对象方式来
# string='abc123'
# string1="123abc456"
# partten=re.compile("\d+")
# li=partten.findall(string)
# print(li)
# li=partten.findall(string1)
# print(li)
#sub 替换
# str2=re.sub('\D','*',str)
# print(str2)
#split()分割
# li=re.split('\d',str)
# print(li)
# # 例如检查用户的输入,找不到返回空
# print(li)
#检查用户的输入是首字母大写,必须是字母+数字组合的8位长度的字符串
# i=input("请输入8位以上的字母+数字组合的字符串,首字母必须大写")
# li=re.findall('^[A-Z]\w{7,}',i)
# print(li)
# 获取蜗牛学院官网上的a标签
# html=requests.get("http://www.woniuxy.com").text
# print(re.findall("<a href=\"(.+?)\" target",html))
#判读输入的ip是否有效
# ip='211.111.111.111'
# # ip1=re.findall('((25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))\.){3}(25[0-5]|2[0-4]\d|((1\d{2})|([1-9]?\d)))|[0-1]?\d{1,2})){3}',ip)
# # print(ip1)
#例子:
#
# #不使用正则表达式实现img获取
# import requests,re
#
# #请求url
# def get_html(url):
# res=requests.get(url)
# # print(res.text)
# return res.text
# #通过切片获取url,是包含url的列表
# def get_url(url):
# htmltext=get_html(url)
# li1=[]
# li2=[]
# li3=[]
# htmltext=htmltext.split('\n')#html页面 str
# for i in htmltext:
# if '<img' in i:
# li1.append(i.strip())#strip只针对str
# for i in li1:
# if i.startswith('<img'):
# li2.append(i)
# for i in li2:
# in1=i.split('"')
# try:
# url1 = 'http://www.woniuxy.com'
# if in1[1].endswith('g'):
# li1 = url1 + in1[1]
# li3.append(li1)
# except:
# pass
# # print(in1)
# # print(li3)
# # print(li2)
# # htmltext=li1
# return li3
#
# #通过正则表达式获取url,是包含url的列表
# def re_url(url):
# htmltext = get_html(url)
# # li=re.findall('<a href=\"(.+?)\" target',htmltext)
# li = re.findall('<img src=\"(.+?)\"', htmltext)
# li_img=[]
# for i in li:
# url1='http://www.woniuxy.com'
# li1=url1+i
# li_img.append(li1)
# # print('http://www.woniuxy.com/'+i)
# return li_img
#
# #获取图片
# def get_img(url):
# li_img=re_url(url)
# # li_img = get_url(url)
# # print(li_img)
# print(li_img)
# for i in li_img:
# img_name=i.split('/')[-1]
# # print(i)
# try:
# if img_name.endswith('g'):
# img=get_html(i).encode()
# # print(img)
# with open(f'../images/{img_name}','wb')as f:
# f.write(img)
# except:
# print('出错')
# return li_img
# url='http://www.woniuxy.com/'
# # print(type(get_html(url)))#str
# # get_url(url)
# # print(len(get_url(url)))
# # print(re_url(url))
# # print(len(re_url(url)))
# get_img(url)
2021-01-11
最新推荐文章于 2024-08-28 13:20:39 发布