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中文问题解决方法(总结了多位前人经验,初学者必看)
Mar 13 Python
Web服务器框架 Tornado简介
Jul 16 Python
python实现带验证码网站的自动登陆实现代码
Jan 12 Python
Windows下Python3.6安装第三方模块的方法
Nov 22 Python
利用Python求阴影部分的面积实例代码
Dec 05 Python
python实现基于信息增益的决策树归纳
Dec 18 Python
nginx黑名单和django限速,最简单的防恶意请求方法分享
Aug 09 Python
使用python绘制二维图形示例
Nov 22 Python
Python JSON编解码方式原理详解
Jan 20 Python
使用Python实现批量ping操作方法
May 06 Python
解决启动django,浏览器显示“服务器拒绝访问”的问题
May 13 Python
Python中用xlwt制作表格实例讲解
Nov 05 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第一季视频教程(李炎恢+php100 不断更新)
2011/05/29 PHP
php空间不支持socket但支持curl时recaptcha的用法
2011/11/07 PHP
浅析ThinkPHP的模板输出功能
2014/07/01 PHP
Thinkphp5.0 框架使用模型Model添加、更新、删除数据操作详解
2019/10/11 PHP
PHP常用字符串函数用法实例总结
2020/06/04 PHP
JavaScript 错误处理与调试经验总结
2010/08/10 Javascript
JS常见问题整理(持续更新)
2013/08/06 Javascript
javascript:void(0)是什么意思示例介绍
2013/11/17 Javascript
JSON.stringify转换JSON时日期时间不准确的解决方法
2014/08/08 Javascript
jQuery实现图片轮播特效代码分享
2015/09/15 Javascript
jquery ui dialog替代confirm实例分析
2016/01/25 Javascript
详解Jquery Easyui的验证扩展
2017/01/09 Javascript
详解使用fetch发送post请求时的参数处理
2017/04/05 Javascript
JavaScript 五大常见函数
2018/03/23 Javascript
jQuery模拟html下拉多选框的原生实现方法示例
2019/05/30 jQuery
element-ui 远程搜索组件el-select在项目中组件化的实现代码
2019/12/04 Javascript
JS中的const命令你真懂它吗
2020/03/08 Javascript
JS实现点星星消除小游戏
2020/03/24 Javascript
JS数组降维的实现Array.prototype.concat.apply([], arr)
2020/04/28 Javascript
python实现的登录和操作开心网脚本分享
2014/07/09 Python
Python实现竖排打印传单手机号码易撕条
2015/03/16 Python
Python中使用PyQt把网页转换成PDF操作代码实例
2015/04/23 Python
Python 给屏幕打印信息加上颜色的实现方法
2019/04/24 Python
python selenium 执行完毕关闭chromedriver进程示例
2019/11/15 Python
python手写均值滤波
2020/02/19 Python
互动出版网:专业书籍
2017/03/21 全球购物
2013年大学生的自我鉴定
2013/10/24 职场文书
简历中个人自我评价范文
2013/12/26 职场文书
公司年会演讲稿范文
2014/01/11 职场文书
建议书范文
2015/02/05 职场文书
新郎婚礼致辞
2015/07/27 职场文书
公安干警正风肃纪心得体会
2016/01/15 职场文书
python实现Nao机器人的单目测距
2021/09/04 Python
基于Redis zSet实现滑动窗口对短信进行防刷限流的问题
2022/02/12 Redis
SQL语句多表联合查询的方法示例
2022/04/18 MySQL
鲲鹏 CentOS 7 安装Python3.7
2022/05/11 Servers