f = open(str(i)+'.jpg', "wb")
使用二进制写方式打开文件,保存图片,不然图片会马赛克。
正则表达式是:使用单个字符串 来描述 匹配 一系列 符合 某个句法规则的 字符串
正则表达式通常被用来检索、替换那些匹配某个模式的文本
import re str = "imooc python learning" pa = re.compile(r"imooc") #生成对象,r表示原字符串,不需要转义 print(type(pa)) #查看定义的规则类型 result_match = pa.match(str) #匹配目标 result = result_match.group() #保存匹配结果
正则表达式中的小括号是代表分组的意思。如果过后面出现了了\1就是代表匹配的内容与第一个小括号内的东西一样
R3=re.match(r'<([\w]+>)[\w]+</\1','<Book>Python</Book>')
\1 其实就是([\w]+>)
re模块的方法: search,findall,sub,split
#coding:utf-8 import urllib.request req = urllib.request.urlopen('https://www.imooc.com/course/list') buf = req.read() buf = buf.decode('utf-8') import re urlInfo = re.findall(r'//img.+?\.jpg', buf) D = {} for url in urlInfo: D[url] = url i = 1 for (url,v) in D.items(): #print(url,i) f = open('E:\\Eclipse-py\\imooc\\src\\regular\\images\\'+str(i)+'.jpg', 'wb+') req = urllib.request.urlopen('https:'+url) buf = req.read() #buf = buf.encode('utf-8') f.write(buf) f.close() i += 1
Python 装饰器
函数作用域LEGB原则:L>E>G>B L:local函数内部作用域 E:enclosing函数内部与内嵌函数之间(闭包) G:global全局作用域 B:build-in内置作用域
闭包:其实就是内部的函数调用外界的变量,外界的变量变了,内部的变量也就变了,弄得这么高深,还什么属性属性的
闭包作用:1.封装 2.代码复用
@装饰器