-
#-*- coding:UTF-8 -*- #使用Python实现简单的抓取网页图片 import re import urllib2 req = urllib2.urlopen('http://www.imooc.com/course/list') buf = req.read() listurl = re.findall(r'http:.+\.jpg', buf) i = 0 for url in listurl: f = open(str(i)+'.jpg','wb') req = urllib2.urlopen(url) buf = req.read() f.write(buf) i = i + 1 f.close()查看全部
-
这里出现一个问题,按照代码来跑图片,都下载到本地了,但是打不开,明显文件损坏,但是把打开方式改为wb即可正常打开查看全部
-
1、pa=re.compile(r"imooc",re.I)#若字符串中有大写,也匹配大写的,即忽略大小写。 I,大小写 2、ma.groups():返回一个组 3、也可以直接使用re.match(),直接生成一个pattern查看全部
-
1、在文本中找到以imooc开头的语句: f=open("imooc.txt") for line in f: if line.startswith("imooc"): print line 或者构造成一个函数: def find_start_imooc(fname) f=open(fname) for line in f: if line.startswith("imooc"): print line find_start_imooc("imooc.txt")#调用该函数 2、找到imooc开头和结尾的语句。注意结尾要用切片。 def find_in_imooc(fname) f=open(fname) for line in f: if line.startswith("imooc") and line[:-1].endswith("imooc"): print line find_in_imooc("imooc.txt") 3、匹配一个下划线和字母开头的变量名 a="_value1" a and (a[0]=="_"or"a"<=a[0]<="z")#匹配 4、正则表达式概念 1.使用单个字符串来描述匹配一系列符合某个句法规则的字符串 2.是对字符串操作的一种逻辑公式 3.应用场景:处理文本和数据 4.正则表达式过程:依次拿出表达式和文本中的字符比较,如果每一个字符都能匹配,则匹配成功;否则匹配失效。查看全部
-
正则表达式语法查看全部
-
. 匹配任意一个字符。 [abc] 匹配中括号内的任意一个字符 /d /D 匹配任意一个数字 匹配任意一个非数字 /s /S 匹配一个空格 匹配任意一个非空格 /w /W 匹配一个单词型(字母和数字) /W匹配一个非单词型查看全部
-
爬取网站图片过程: import urllib2 //导入urllib2包 req=urllib2.urlopen('http://www.XXXX.com') //对网页发出请求 buf=req.read() //将网页内容读取到buf缓存中 import re urllist = re.findall(r'http:.+\.jpg',buf) //获取图片地址列表 i=0 for url in urllist: f=open(str(i)+'.jpg','w') //创建一个文件,命名为{str(i).jpg} ‘w’:采用写入方式,若无该文件则创建它 req = urllib2.urlopen(url) //请求该地址内容 buf = req.read() //读取请求信息 f.write(buf) //将buf内容写到文件f中 i+=1查看全部
-
^ 匹配字符串的开头 $ 匹配字符串的结尾 | 匹配左右任意一个表达式 (ab) 括号中表达式作为一个分组 \<number> 引用编号为number的分组匹配到的字符串 (?P<name>) 分组起别名 (?P=name) 引用别名为name的分组匹配字符串查看全部
-
r'<([\w]+>)[\w]+</\1' 小括号中作为一个分组,中间的[\w]+表示匹配一个或多个数字字母 下划线
<\表示HTML中的标签结尾,\1表示再次使用小括号中的匹配内容在匹配一次
查看全部 -
Python 3 代码,获取图片不在是src开头,另外图片结尾有jpg和npg。特别是下载重命名时不能都命名为jpg格式。
# get html req = urllib.request.urlopen('https://www.imooc.com/course/list') buf_html = req.read().decode('utf-8') images_tmp = re.findall(r'data-original=.*(?:jpg|png)', buf_html) #get image url list img_urls = [] for ins in images_tmp: t = re.split(r'//', ins) img_urls.append('http://' + t[1]) i = 1 for url in img_urls: fileName = open(str(i) + '.' + re.split(r'\.', url)[-1], 'wb') req1 = urllib.request.urlopen(url) buf_image = req1.read() fileName.write(buf_image) i += 1
查看全部 -
#环境python3.7 import re import urllib.request req=urllib.request.urlopen('https://www.imooc.com/course/list')#读取网站 buf=req.read().decode('utf-8')#读取网站中的字符串 listurl1=re.findall(r'//img.+\.jpg',buf)#找到匹配对象 str1=' '.join(listurl1)#在前面添加https: subhttps=re.sub(r'//','https://',str1) sht=re.split(r' ',subhttps) #保存图片 i=0 for url in sht: f=open(str(i)+'.jpg','wb+')#打开一个文件(文件名,写入方式)若不存在就会创建,wb+才支持byte的写入 req=urllib.request.urlopen(url) buf=req.read() f.write(buf) i+=1
查看全部 -
导入模块 import re
生成Pattern pa = re.compile(r'要查找的内容')
生成Match ma = pa.match(被查找的字符串)
ma.group() #返回匹配字符串或元组
ma.span() #返回匹配字符串的位置
ma.string #返回被匹配字符串
查看全部 -
| 匹配左右任意一个表达式
(ab) 括号中表达式作为一个分组
\<number> 引用编号为number的分组匹配到的字符串
(?P<name>) 分组起别名
(?P=name) 引用别名为name的分组匹配字符串
查看全部 -
多字符匹配
re.match(r'[_a-zA-Z]+[_\w]*',"asfjl;ka ")
+:前面的一个字符可以出现1次或无数次
*:前面的一个字符可以出现0次或无数次
以下划线或者字母开头(+号的作用),后面可以是下划线或者其他字符的字符串
<br>
?:匹配前面的一个字符0次或者1次<br>
[1-9]?[0-9] #09是可以被match上的 虽然只是返回一个0 奇怪。。
{m} 匹配前一个字符m次
{m,n} 匹配前一个字符m到n次
*? +? ?? 指虽然可以匹配上但是不返回后面的
查看全部 -
. 匹配除 "\n" 之外的任何单个字符。要匹配包括 '\n' 在内的任何字符,请使用象 '[.\n]' 的模式。<br> \d 匹配一个数字字符。等价于 [0-9]。<br> \D 匹配一个非数字字符。等价于 [^0-9]。<br> \s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]。<br> \S 匹配任何非空白字符。等价于 [^ \f\n\r\t\v]。<br> \w 匹配包括下划线的任何单词字符。等价于'[A-Za-z0-9_]'。<br> \W 匹配任何非单词字符。等价于 '[^A-Za-z0-9_]'。
查看全部
举报
0/150
提交
取消