2021-01-11

在这里插入代码片
#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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值