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通过scapy获取局域网所有主机mac地址示例
May 04 Python
Python可变参数*args和**kwargs用法实例小结
Apr 27 Python
django_orm查询性能优化方法
Aug 20 Python
python基于paramiko将文件上传到服务器代码实现
Jul 08 Python
python 实现两个线程交替执行
May 02 Python
Opencv求取连通区域重心实例
Jun 04 Python
python 删除系统中的文件(按时间,大小,扩展名)
Nov 19 Python
call在Python中改进数列的实例讲解
Dec 09 Python
python中操作文件的模块的方法总结
Feb 04 Python
详解非极大值抑制算法之Python实现
Jun 28 Python
Python&Matlab实现樱花的绘制
Apr 07 Python
Elasticsearch 聚合查询和排序
Apr 19 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
PHP4实际应用经验篇(4)
2006/10/09 PHP
使用php伪造referer的方法 利用referer防止图片盗链
2014/01/20 PHP
php 获取页面中指定内容的实现类
2014/01/23 PHP
浅谈PHP中如何实现Hook机制
2017/11/14 PHP
JS实现金额转换(将输入的阿拉伯数字)转换成中文的实现代码
2013/09/30 Javascript
js中top的作用深入剖析
2014/03/04 Javascript
setInterval计时器不准的问题解决方法
2014/05/08 Javascript
js生成随机数的过程解析
2015/11/24 Javascript
详解js中构造流程图的核心技术JsPlumb(2)
2015/12/08 Javascript
NodeJs安装npm包一直失败的解决方法
2017/04/28 NodeJs
微信小程序实现图片放大预览功能
2020/10/22 Javascript
Koa2微信公众号开发之消息管理
2018/05/16 Javascript
vue循环中点击选中再点击取消(单选)的实现
2020/09/10 Javascript
uniapp开发小程序实现滑动页面控制元素的显示和隐藏效果
2020/12/10 Javascript
[56:42]VP vs RNG 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python插入数据到列表的方法
2015/04/30 Python
Python 爬虫之超链接 url中含有中文出错及解决办法
2017/08/03 Python
python 查找文件名包含指定字符串的方法
2018/06/05 Python
python实现微信防撤回神器
2019/04/29 Python
详解python编译器和解释器的区别
2019/06/24 Python
Python插件机制实现详解
2020/05/04 Python
PyCharm最新激活码(2020/10/27全网最新)
2020/10/27 Python
伦敦最著名的老字号百货公司:Selfridges(塞尔福里奇百货)
2016/07/25 全球购物
Static Nested Class 和 Inner Class的不同
2013/11/28 面试题
生产车间实习自我鉴定
2013/09/23 职场文书
父母寄语大全
2014/04/12 职场文书
大专生找工作自荐书
2014/06/10 职场文书
婚内分居协议书范文
2014/11/26 职场文书
2016小学新学期寄语
2015/12/04 职场文书
2016年端午节红领巾广播稿
2015/12/18 职场文书
导游词之河北滦平金山岭长城
2019/10/16 职场文书
JS一分钟在github+Jekyll的博客中添加访问量功能的实现
2021/04/03 Javascript
python缺失值的解决方法总结
2021/06/09 Python
Python可变集合和不可变集合的构造方法大全
2021/12/06 Python
Vue组件更新数据v-model不生效的解决
2022/04/02 Vue.js
JavaScript原型链中函数和对象的理解
2022/06/16 Javascript