为了账号安全,请及时绑定邮箱和手机立即绑定

python正则表达式

难度初级
时长 1小时29分
学习人数
综合评分9.40
211人评价 查看评价
9.7 内容实用
9.4 简洁易懂
9.1 逻辑清晰
建议遇到问题的同学先修改以下三处代码
listurl = re.findall(r'//.+?\.jpg*', buf) #匹配src中的内容

f = open('D:/picture/' + str(i) + '.jpg', 'wb') #将图片存到D盘下的picture中
req = urllib2.urlopen('http:'+url) #爬取图片
listurl = re.findall(r'//.+?\.jpg*', buf)
建议读一下廖雪峰的正则表达式 再来看 会理解很多
个人觉得廖雪峰老师的逻辑清晰很多
compile=complete,pattern=partner……
i = 0
old_url = ''
for _url in listurl:
f = open(str(i)+'.jpg','wb')
url = 'http:'+_url
if url == old_url:
continue
old_url = url
#print (url,'')
req = request.urlopen(url)
buf = req.read()
f.write(buf)
i += 1
f.close()
print ('download %s '%(i))
Python3.6版本
from urllib import request
import re

url = 'https://www.imooc.com/course/list'
req = request.urlopen(url)

buf = req.read()
buf = buf.decode('utf-8')

listurl = re.findall(r'\/\/img.+?\.jpg',buf)

#for _url in listurl:
# print(_url)
老师顺便讲了个小爬虫,厉害厉害

\竖大拇指
打完收工了

已采纳回答 / qq_爱吃羊的鲸鱼_0
\1就是代表了前面“([\w]+>)”这些内容,你将\1替换掉就成了ma=re.match(r'<([\w]+>)[\w]+</([\w]+>)','<book>python</book>')  其中括号已经没有意义,去掉后就变成ma=re.match(r'<[\w]+>[\w]+</[\w]+>','<book>python</book>')  这样看就应该没问题了吧。后面加1匹配不出来的原因也是应为&...
应该用非贪婪匹配 r&#039;src=.+?\.jpg&#039;

最新回答 / qq_琪_10
我知道了,match函数是从字符串的开始匹配的,正则表达式的每一部分都跟字符串的开始匹配

最赞回答 / 华灯初上丶
import reimport urllibreq = urllib.request.urlopen('http://www.imooc.com/course/list')#此处加上decode(),不然拿下来的数据都是乱码buf = req.read().decode("utf-8")#老师讲课的url地址已经发生改变,改一下正则匹配就好# listurl = re.findall(r'src=.+\.jpg', buf)listurl = re.findall(r'//img.+?\.jpg', bu...
课程须知
本课程是Python中级课程 1、本课程在linux讲解,最好有linux开发环境 1、熟练掌握Python开发语言基础语法
老师告诉你能学到什么?
1.正则表达式基本语法 2.使用re模块处理文本

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消