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实现同时兼容老版和新版Socket协议的一个简单WebSocket服务器
Jun 04 Python
Python文件操作类操作实例详解
Jul 11 Python
Python获取暗黑破坏神3战网前1000命位玩家的英雄技能统计
Jul 04 Python
python中redis查看剩余过期时间及用正则通配符批量删除key的方法
Jul 30 Python
Django使用paginator插件实现翻页功能的实例
Oct 24 Python
Django restframework 源码分析之认证详解
Feb 22 Python
Python按钮的响应事件详解
Mar 04 Python
对Python中小整数对象池和大整数对象池的使用详解
Jul 09 Python
Java文件与类动手动脑实例详解
Nov 10 Python
python中利用matplotlib读取灰度图的例子
Dec 07 Python
python实现猜拳游戏
Mar 04 Python
Python pandas如何向excel添加数据
May 22 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中文件上传的安全问题
2006/10/09 PHP
用php简单实现加减乘除计算器
2014/01/06 PHP
JS 无法通过W3C验证的处理方法
2010/03/09 Javascript
浅谈tudou土豆网首页图片延迟加载的效果
2010/06/23 Javascript
用jquery实现自定义风格的滑动条实现代码
2011/04/26 Javascript
JS 获取滚动条高度示例代码
2013/10/24 Javascript
js+css实现select的美化效果
2016/03/24 Javascript
jQuery简单实现仿京东分类导航层效果
2016/06/07 Javascript
微信小程序之ES6与事项助手的功能实现
2016/11/30 Javascript
javascript html5轻松实现拖动功能
2017/03/01 Javascript
easyui简介_动力节点Java学院整理
2017/07/14 Javascript
基于Vue生产环境部署详解
2017/09/15 Javascript
在vue项目中使用sass的配置方法
2018/03/20 Javascript
浅谈Vue数据响应
2018/11/05 Javascript
Vue 实例事件简单示例
2019/09/19 Javascript
[00:28]DOTA2北京网鱼队选拔赛
2015/04/08 DOTA
Python检测QQ在线状态的方法
2015/05/09 Python
Python中的取模运算方法
2018/11/10 Python
关于Python作用域自学总结
2019/06/10 Python
基于Python3.7.1无法导入Numpy的解决方式
2020/03/09 Python
Django实现whoosh搜索引擎使用jieba分词
2020/04/08 Python
Python爬虫工具requests-html使用解析
2020/04/29 Python
Html5导航栏吸顶方案原理与对比实现
2020/06/10 HTML / CSS
英国家喻户晓的家居商店:The Range
2019/03/25 全球购物
您附近的水疗和健康场所:Spafinder(美国)
2019/07/05 全球购物
《三峡》教学反思
2014/03/01 职场文书
党员干部公开承诺书
2014/03/26 职场文书
我的中国梦演讲稿500字
2014/08/19 职场文书
水利局群众路线专题民主生活会发言材料
2014/09/21 职场文书
个人作风建设心得体会
2014/10/22 职场文书
2014年食堂工作总结
2014/11/20 职场文书
紧急通知
2015/04/17 职场文书
公文写作:工伤事故分析报告怎么写?
2019/11/05 职场文书
深入理解python多线程编程
2021/04/18 Python
springboot用户数据修改的详细实现
2022/04/06 Java/Android
常用的文件对应的MIME类型汇总
2022/04/26 HTML / CSS