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 连连看连接算法
Nov 22 Python
跟老齐学Python之有点简约的元组
Sep 24 Python
python比较2个xml内容的方法
May 11 Python
Python编程深度学习计算库之numpy
Dec 28 Python
python random从集合中随机选择元素的方法
Jan 23 Python
使用Python的SymPy库解决数学运算问题的方法
Mar 27 Python
Python 给下载文件显示进度条和下载时间的实现
Apr 02 Python
python实时监控logstash日志代码
Apr 27 Python
Python如何对XML 解析
Jun 28 Python
numpy中生成随机数的几种常用函数(小结)
Aug 18 Python
Python多线程 Queue 模块常见用法
Jul 04 Python
Pygame Time时间控制的具体使用详解
Nov 17 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的一个简单加密解密代码
2014/01/14 PHP
centos 7.2下搭建LNMP环境教程
2016/11/20 PHP
php类自动装载、链式操作、魔术方法实现代码
2017/07/23 PHP
php对微信支付回调处理的方法
2018/08/23 PHP
javascript基础知识大集锦(二) 推荐收藏
2011/01/13 Javascript
JS 修改URL参数(实现代码)
2013/07/08 Javascript
微信浏览器内置JavaScript对象WeixinJSBridge使用实例
2015/05/25 Javascript
jquery超简单实现手风琴效果的方法
2015/06/05 Javascript
js实现定时进度条完成后切换图片
2017/01/04 Javascript
详解微信小程序开发之城市选择器 城市切换
2017/01/17 Javascript
详解Angularjs在控制器(controller.js)中使用过滤器($filter)格式化日期/时间实例
2017/02/17 Javascript
微信小程序实战之顶部导航栏(选项卡)(1)
2020/06/19 Javascript
微信小程序实现移动端滑动分页效果(ajax)
2017/06/13 Javascript
phantomjs导出html到pdf的方法总结
2017/10/19 Javascript
详解vue使用vue-layer-mobile组件实现toast,loading效果
2018/08/31 Javascript
用jQuery实现抽奖程序
2020/04/12 jQuery
js实现自定义滚动条的示例
2020/10/27 Javascript
[33:39]DOTA2上海特级锦标赛C组小组赛#2 LGD VS Newbee第二局
2016/02/27 DOTA
[01:51]2018年度CS GO最具人气外援-完美盛典
2018/12/16 DOTA
python的正则表达式re模块的常用方法
2013/03/09 Python
Python实现字典依据value排序
2016/02/24 Python
Python模拟登陆淘宝并统计淘宝消费情况的代码实例分享
2016/07/04 Python
python中numpy的矩阵、多维数组的用法
2018/02/05 Python
python学习基础之循环import及import过程
2018/04/22 Python
python+selenium打印当前页面的titl和url方法
2018/06/22 Python
Python中pymysql 模块的使用详解
2019/08/12 Python
Python Django Cookie 简单用法解析
2019/08/13 Python
Python JSON编解码方式原理详解
2020/01/20 Python
HTML5不支持标签和新增标签详解
2016/06/27 HTML / CSS
会计专业推荐信
2013/10/29 职场文书
电子工程专业毕业生求职信
2014/03/14 职场文书
中学生期中自我鉴定
2014/04/20 职场文书
党员干部民主生活会议批评与自我批评材料
2014/09/20 职场文书
幼儿园见习报告范文
2014/10/30 职场文书
使用 JavaScript 制作页面效果
2021/04/21 Javascript
详解Python内置模块Collections
2022/03/22 Python