Python3.x-正则表达式抓取慕课网图片到本地

今天刚学习完正则表达式中的基本语法,于是为了练习正则表达式的使用,便使用正则表达式来进行了一个小项目的编写。

实践思路:
1、确定要抓取的网页URL地址
2、获取图片地址
3、抓取图片地址并保存到本地

首先我们确定目标网页:
http://www.imooc.com/course/list
接着我们需要查看URL中对应的图片信息:

爬取的网页.png

你会发现图片的URL有两个,而且还是一模一样的。
准备工作做好之后,我们就需要对此进行编码工作了:
我们要使用到的Python模块有urlib以及re模块:

import  urlib
import  re

抓取目标网页:

req = urlib.request.urlopen('http://www.imooc.com/course/list')
buf = req.read()
目标网页

使用正则表达式找到整个页面的所有图片链接:

buf = buf.decode('utf-8')  #特别需要注意,python3和python之间的区别
listurl = re.findall(r'//.+\.jpg',buf)
图片路径

我们获取到的图片路径不利于我们下载图片,所以我们必须进行URL提取:

res = []
for url in listurl:
      a = re.findall(r'//.+\.jpg',url)
      res.append(a[0])
处理后的图片路径

这样就得到了所有图片的URL,因此下一步就是读取图片并保存在本地:

读取图片保存在本地

注:其中需要注意的是i的值为0,且下载的时候需要加上"http:"前缀才能正确的进行下载。

查看图片.png

总结:
通过对这次小案例的学习,对正则表达式也有了一定的练习与巩固,特别需要注意的是Python3.x与Python2.x之间的差别,以及对正则表达式的使用一定要掌握!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,169评论 19 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 174,138评论 25 709
  • 晚风轻扰,心似兰花草。朗目星眉侧身伫,绯红遮双目。 幽夜暗香微涌,谁将余香捧浓?羞于翦风轻诉,带向心头他处。
    蜗牛跑跑阅读 239评论 0 1
  • 李黎是一个农村留守儿童,她还有一个比自己小四岁的弟弟,叫李峻。他们出生于江南,生活在山村,爸爸妈妈常年在外工作,一...
    窝书阅读 955评论 0 1
  • 前些日子,在课堂上,我安排学生给他们在职场工作的亲戚朋友打电话,电话的内容是,你们工作之余有什么兴趣爱好么? 答案...
    邹永浩阅读 729评论 4 49