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 10 Python
Python最基本的数据类型以及对元组的介绍
Apr 14 Python
Python实现的简单hangman游戏实例
Jun 28 Python
python解决方案:WindowsError: [Error 2]
Aug 28 Python
Django自定义过滤器定义与用法示例
Mar 22 Python
python实现音乐下载的统计
Jun 20 Python
Flask web开发处理POST请求实现(登录案例)
Jul 26 Python
Python2和Python3之间的str处理方式导致乱码的讲解
Jan 03 Python
Python3网络爬虫中的requests高级用法详解
Jun 18 Python
Django Rest framework权限的详细用法
Jul 25 Python
Python如何创建装饰器时保留函数元信息
Aug 07 Python
详解如何在pyqt中通过OpenCV实现对窗口的透视变换
Sep 20 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实现比较两个文件夹异同的方法
2015/06/18 PHP
jQuery html()等方法介绍
2009/11/18 Javascript
百度地图api应用标注地理位置信息(js版)
2013/02/01 Javascript
javascript闭包的高级使用方法实例
2013/07/04 Javascript
javaScript函数中执行C#代码中的函数方法总结
2013/08/07 Javascript
js跳转页面方法总结
2014/01/29 Javascript
js随机生成网页背景颜色的方法
2015/02/26 Javascript
javascript白色简洁计算器
2015/05/04 Javascript
js正则表达式中exec用法实例
2015/07/23 Javascript
微信小程序 less文件编译成wxss文件实现办法
2016/12/05 Javascript
Angular中$state.go页面跳转并传递参数的方法
2017/05/09 Javascript
vue-cli单页应用改成多页应用配置详解
2017/07/14 Javascript
node跨域转发 express+http-proxy-middleware的使用
2018/05/31 Javascript
微信小程序数据分析之自定义分析的实现
2018/08/17 Javascript
10行代码实现微信小程序滑动tab切换
2018/12/28 Javascript
微信小程序修改数组长度的问题的解决
2019/12/17 Javascript
el-table树形表格表单验证(列表生成序号)
2020/05/31 Javascript
详解JavaScript 的执行机制
2020/09/18 Javascript
[00:12]2018DOTA2亚洲邀请赛 Somnus丶M出阵单挑
2018/04/06 DOTA
python调用shell的方法
2013/11/20 Python
35个Python编程小技巧
2014/04/01 Python
Python列出一个文件夹及其子目录的所有文件
2016/06/30 Python
python 文件操作api(文件操作函数)
2016/08/28 Python
TensorFlow入门使用 tf.train.Saver()保存模型
2018/04/24 Python
python的pandas工具包,保存.csv文件时不要表头的实例
2018/06/14 Python
mac下如何将python2.7改为python3
2018/07/13 Python
python写程序统计词频的方法
2019/07/29 Python
Python中输入和输出(打印)数据实例方法
2019/10/13 Python
解决Python中回文数和质数的问题
2019/11/24 Python
Pytorch对Himmelblau函数的优化详解
2020/02/29 Python
数学专业毕业生自荐信
2013/11/10 职场文书
护理专业学生的求职信范文
2013/12/11 职场文书
预备党员综合考察材料
2014/05/31 职场文书
担保书格式
2015/01/20 职场文书
2015学校年度工作总结
2015/05/11 职场文书
JavaScript 反射学习技巧
2021/10/16 Javascript