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抓取网页正文的源码
Jun 11 Python
Python开发如何在ubuntu 15.10 上配置vim
Jan 25 Python
python利用lxml读写xml格式的文件
Aug 10 Python
python实现对excel进行数据剔除操作实例
Dec 07 Python
django 按时间范围查询数据库实例代码
Feb 11 Python
python基于http下载视频或音频
Jun 20 Python
python 获取键盘输入,同时有超时的功能示例
Nov 13 Python
python实现贪吃蛇小游戏
Mar 21 Python
Pandas删除数据的几种情况(小结)
Jun 21 Python
Django框架配置mysql数据库实现过程
Apr 22 Python
TensorFlow-gpu和opencv安装详细教程
Jun 30 Python
Python变量格式化输出实现原理解析
Aug 06 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
收藏一些不常用,但是有用的代码
2007/03/12 Javascript
jQuery弹出(alert)select选择的值
2013/04/21 Javascript
javascipt匹配单行和多行注释的正则表达式
2013/11/20 Javascript
使用简洁的jQuery方法实现隔行换色功能
2014/01/02 Javascript
js实现div的切换特效上一个下一个
2014/02/11 Javascript
php实例分享之实现显示网站运行时间
2014/05/20 Javascript
jquery实现鼠标滑过显示提示框的方法
2015/02/05 Javascript
JS 通过系统时间限定动态添加 select option的实例代码
2016/06/09 Javascript
Google 地图叠加层实例讲解
2016/08/06 Javascript
Javascript中apply、call、bind的巧妙使用
2016/08/18 Javascript
深入理解Vue生命周期、手动挂载及挂载子组件
2017/09/27 Javascript
ES6 javascript中Class类继承用法实例详解
2017/10/30 Javascript
vue脚手架及vue-router基本使用
2018/04/09 Javascript
JavaScript 中 JSON.parse 函数 和 JSON.stringify 函数
2018/12/05 Javascript
JavaScript Math对象和调试程序的方法分析
2019/05/13 Javascript
Vue-Cli项目优化操作的实现
2019/10/27 Javascript
vue中如何自定义右键菜单详解
2020/12/08 Vue.js
[02:32]DOTA2英雄基础教程 祸乱之源
2013/12/23 DOTA
[05:15]DOTA2英雄梦之声_第16期_灰烬之灵
2014/06/21 DOTA
[54:45]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 Optic vs OG
2018/04/02 DOTA
Python常用的文件及文件路径、目录操作方法汇总介绍
2015/05/21 Python
Eclipse中Python开发环境搭建简单教程
2016/03/23 Python
解决Scrapy安装错误:Microsoft Visual C++ 14.0 is required...
2017/10/01 Python
Python中类的初始化特殊方法
2017/12/01 Python
python 字典修改键(key)的几种方法
2018/08/10 Python
Python3并发写文件与Python对比
2019/11/20 Python
Python Scrapy框架第一个入门程序示例
2020/02/05 Python
利用Python的folium包绘制城市道路图的实现示例
2020/08/24 Python
快速创建python 虚拟环境
2020/11/28 Python
中国最大的潮流商品购物网站:YOHO!BUY有货
2017/01/07 全球购物
Clarks鞋法国官方网站:英国其乐鞋品牌
2018/02/11 全球购物
威盛公司软件C++工程师笔试题面试题
2012/07/16 面试题
三爱活动实施方案
2014/03/19 职场文书
《窗前的气球》教学反思
2014/04/07 职场文书
灵山大佛导游词
2015/02/04 职场文书
教你怎么用python selenium实现自动化测试
2021/05/27 Python