Python3.x爬虫下载网页图片的实例讲解


Posted in Python onMay 22, 2018

一、选取网址进行爬虫

本次我们选取pixabay图片网站

url=https://pixabay.com/

Python3.x爬虫下载网页图片的实例讲解

Python3.x爬虫下载网页图片的实例讲解

二、选择图片右键选择查看元素来寻找图片链接的规则

Python3.x爬虫下载网页图片的实例讲解

Python3.x爬虫下载网页图片的实例讲解

通过查看多个图片路径我们发现取src路径都含有 https://cdn.pixabay.com/photo/ 公共部分且图片格式都为.jpg 因此正则表达式为

re.compile(r'^https://cdn.pixabay.com/photo/.*?jpg$')

通过以上的分析我们可以开始写程序了

#-*- coding:utf-8 -*-
import re
import requests
import os
from bs4 import BeautifulSoup

url = 'https://pixabay.com/'
html = requests.get(url).text #获取网页内容
print(html)
# 这里由于有些图片可能存在网址打不开的情况,加个5秒超时控制。
#data-objurl="http://pic38.nipic.com/20140218/17995031_091821599000_2.jpg"获取这种类型链接
soup = BeautifulSoup(html,'html.parser',from_encoding='utf-8')
#^abc.*?qwe$
pic_url = soup.find_all('img',src=re.compile(r'^https://cdn.pixabay.com/photo/.*?jpg$'))
#pic_url = pic_node.get_text()
#pic_url = re.findall('"https://cdn.pixabay.com/photo/""(.*?)",',html,re.S)
print(pic_url)
i = 0
#判断image文件夹是否存在,不存在则创建
if not os.path.exists('image'):
 os.makedirs('image')
for url in pic_url:
 img = url['src']
 try:
 pic = requests.get(img,timeout=5) #超时异常判断 5秒超时
 except requests.exceptions.ConnectionError:
 print('当前图片无法下载')
 continue
 file_name = "image/"+str(i)+".jpg" #拼接图片名
 print(file_name)
 #将图片存入本地
 fp = open(file_name,'wb')
 fp.write(pic.content) #写入图片
 fp.close()
 i+=1

代码是不是很简单呢 如果你想修改地址 取爬取别的网站 请注意分析下载图片路径的共性 并设计合理的正则表达式,否则是无法获取到图片路径的

执行过程截图:

Python3.x爬虫下载网页图片的实例讲解

以上这篇Python3.x爬虫下载网页图片的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现扫描指定目录下的子目录及文件的方法
Jul 16 Python
在Python的Django框架的视图中使用Session的方法
Jul 23 Python
python 把数据 json格式输出的实例代码
Oct 31 Python
Python使用time模块实现指定时间触发器示例
May 18 Python
解决nohup重定向python输出到文件不成功的问题
May 11 Python
Python import与from import使用及区别介绍
Sep 06 Python
python 获取url中的参数列表实例
Dec 18 Python
Django REST framework视图的用法
Jan 16 Python
Tensorflow分类器项目自定义数据读入的实现
Feb 05 Python
python中多个装饰器的调用顺序详解
Jul 16 Python
Python读写锁实现实现代码解析
Nov 28 Python
Python matplotlib安装以及实现简单曲线的绘制
Apr 26 Python
python3使用smtplib实现发送邮件功能
May 22 #Python
python抓取网站的图片并下载到本地的方法
May 22 #Python
Python3实现的字典、列表和json对象互转功能示例
May 22 #Python
python3.5 email实现发送邮件功能
May 22 #Python
python模块smtplib实现纯文本邮件发送功能
May 22 #Python
python邮件发送smtplib使用详解
Jun 16 #Python
Python3多线程操作简单示例
May 22 #Python
You might like
php Static关键字实用方法
2010/06/04 PHP
PHP判断指定时间段的2个方法
2014/03/14 PHP
php使用memcoder将视频转成mp4格式的方法
2015/03/12 PHP
PHP之密码加密的几种方式
2015/07/29 PHP
YII2 实现多语言配置的方法分享
2017/01/11 PHP
Yii框架安装简明教程
2020/05/15 PHP
兼容Mozilla必须知道的知识。
2007/01/09 Javascript
jquery1.5.1中根据元素ID获取元素对象的代码
2011/04/02 Javascript
JavaScript与DOM组合动态创建表格实例
2012/12/23 Javascript
jquery中页面Ajax方法$.load的功能使用介绍
2014/10/20 Javascript
Bootstrap3.0学习教程之JS折叠插件
2016/05/27 Javascript
Angular动态添加、删除输入框并计算值实例代码
2017/03/29 Javascript
js单页hash路由原理与应用实战详解
2017/08/14 Javascript
原生JS实现轮播图效果
2018/10/12 Javascript
微信小程序实现的3d轮播图效果示例【基于swiper组件】
2018/12/11 Javascript
Layer.js实现表格溢出内容省略号显示,悬停显示全部的方法
2019/09/16 Javascript
vue 更改连接后台的api示例
2019/11/11 Javascript
JavaScript前端实现压缩图片功能
2020/03/06 Javascript
[05:46]2018完美盛典-《同梦共竞》
2018/12/17 DOTA
使用python和pygame绘制繁花曲线的方法
2018/02/24 Python
使用Python微信库itchat获得好友和群组已撤回的消息
2018/06/24 Python
详解Python 多线程 Timer定时器/延迟执行、Event事件
2019/06/27 Python
python实现控制COM口的示例
2019/07/03 Python
如何利用Python写个坦克大战
2020/11/18 Python
HomeAway的巴西品牌:Alugue Temporada
2018/04/10 全球购物
Perfume’s Club意大利官网:欧洲美妆电商
2019/05/03 全球购物
说一下mysql, oracle等常见数据库的分页实现方案
2012/09/29 面试题
三个Unix的命令面试题
2015/04/12 面试题
中学生爱国演讲稿
2013/12/31 职场文书
村委会贫困证明
2014/01/14 职场文书
《小白兔和小灰兔》教学反思
2014/02/18 职场文书
小小的船教学反思
2014/02/21 职场文书
《记金华的双龙洞》教学反思
2014/04/19 职场文书
写作之关于描写老人的好段摘抄
2019/11/14 职场文书
详细聊聊Oracle表碎片对性能有多大的影响
2022/03/19 Oracle
Mybatis-plus配置分页插件返回统一结果集
2022/06/21 Java/Android