前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python 爬虫进阶篇-4行代码实现爬取指定网站中的全部图片,深入剖析

Python 爬虫进阶篇-4行代码实现爬取指定网站中的全部图片,深入剖析

作者头像
小蓝枣
发布2020-09-23 10:08:47
8700
发布2020-09-23 10:08:47
举报
文章被收录于专栏:CSDN博客专家-小蓝枣的博客

上一篇:Python 爬虫入门篇-如何获取网页中的图片。我们了解到了urllib获取图片的原理,urllib.request.urlretrieve()就是用来获取图片的。

这一篇,我们用正则表达式匹配出指定网站的所有图片,然后都下载下来。

re库就是我们用来做正则表达式的库,**re.findall(a, html)**可以把html中所有符合a正则表达式的链接全都匹配出来。

我们来看看a:'img src="(http.*?)"',一般html中的图片就是img标签,加上src网址,光匹配img标签的话,可能是空的哦。

http.*就是匹配所有网址了,".“代表任意字符,”*"代表前一个字符可以是任意数量了,.*就表示http开头的所有网址了,.*?加个’?‘就限制满足条件的只匹配一次,没有’?'就是匹配任意次,.*习惯性称之为贪婪匹配!

代码语言:javascript
复制
import urllib.request
import re

url="http://ohhappyday.com/" # 我们要爬取图片的地址

page = urllib.request.urlopen(url) # 第一行 打开网址
html = page.read().decode("utf-8") # 第二行 获取html源码

imglist = re.findall('img src="(http.*?)"',html) # 第三行 在html中匹配出符合条件的字符串

x=0
for imgurl in imglist: # 遍历图片地址列表
    urllib.request.urlretrieve(imgurl,'pic%s.jpg' %x) # 第四行 获取图片并保存
    x=x+1

:可以分别用print打印出page、html、imglist、imgurl,这样可以让你更清楚每一步在做什么,产生了什么。

:如果网站地址中包含中文会报错,这个会在后期讲解中做处理。

:如果某些网站没有效果可能是做了反爬虫处理,或者它展示图片的原理不是常规的img加src网址。

如下是我们要实战的网站:

运行后的效果图如下:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/02/16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档