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中import导入上一级目录模块及循环import问题的解决
Jun 04 Python
在PyCharm下使用 ipython 交互式编程的方法
Jan 17 Python
python可视化篇之流式数据监控的实现
Aug 07 Python
详解Python可视化神器Yellowbrick使用
Nov 11 Python
Python倒排索引之查找包含某主题或单词的文件
Nov 13 Python
NumPy中的维度Axis详解
Nov 26 Python
基于Numba提高python运行效率过程解析
Mar 02 Python
selenium WebDriverWait类等待机制的实现
Mar 18 Python
在django中form的label和verbose name的区别说明
May 20 Python
详解基于python的全局与局部序列比对的实现(DNA)
Oct 07 Python
Python实现简单的2048小游戏
Mar 01 Python
TensorFlow中tf.batch_matmul()的用法
Jun 02 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
在Windows中安装Apache2和PHP4的权威指南
2006/10/09 PHP
WordPress迁移时一些常见问题的解决方法整理
2015/11/24 PHP
详解PHP匿名函数与注意事项
2016/03/29 PHP
Laravel路由设定和子路由设定实例分析
2016/03/30 PHP
PHP使用XMLWriter读写xml文件操作详解
2018/07/31 PHP
jQuery处理xml格式的返回数据(实例解析)
2013/11/28 Javascript
深入探讨JavaScript String对象
2015/03/09 Javascript
浅谈jQuery中height与width
2015/07/06 Javascript
AngularJS中$interval的用法详解
2016/02/02 Javascript
理解javascript函数式编程中的闭包(closure)
2016/03/08 Javascript
JavaScript中输出信息的方法(信息确认框-提示输入框-文档流输出)
2016/06/12 Javascript
JS图片压缩(pc端和移动端都适用)
2017/01/12 Javascript
vue-router实现webApp切换页面动画效果代码
2017/05/25 Javascript
解决vue build打包之后首页白屏的问题
2018/03/06 Javascript
element-ui中select组件绑定值改变,触发change事件方法
2018/08/24 Javascript
微信小程序系列之自定义顶部导航功能
2019/05/21 Javascript
详解基于Wepy开发小程序插件(推荐)
2019/08/01 Javascript
javaScript实现一个队列的方法
2020/07/14 Javascript
JavaScript 声明私有变量的两种方式
2021/02/05 Javascript
Python的另外几种语言实现
2015/01/29 Python
浅谈Python中的闭包
2015/07/08 Python
Python计算两个日期相差天数的方法示例
2017/05/23 Python
Python内建模块struct实例详解
2018/02/02 Python
python将邻接矩阵输出成图的实现
2019/11/21 Python
pytorch:torch.mm()和torch.matmul()的使用
2019/12/27 Python
Python Scrapy框架第一个入门程序示例
2020/02/05 Python
Python如何实现的二分查找算法
2020/05/27 Python
python时间序列数据转为timestamp格式的方法
2020/08/03 Python
HTML5中通过li-canvas轻松实现单图、多图、圆角图绘制,单行文字、多行文字等
2018/11/30 HTML / CSS
海淘零差价,宝贝全球购: 宝贝格子
2016/08/24 全球购物
橄榄树药房:OLIVEDA
2019/09/01 全球购物
方正Java笔试题
2014/07/03 面试题
尊师重教演讲稿
2014/09/04 职场文书
幼儿园五一劳动节活动总结
2015/02/09 职场文书
关于MySQL中的 like操作符详情
2021/11/17 MySQL
如何避免mysql启动时错误及sock文件作用分析
2022/01/22 MySQL