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制作检测Linux运行信息的工具的教程
Apr 01 Python
Python实现模拟时钟代码推荐
Nov 08 Python
用Python将IP地址在整型和字符串之间轻松转换
Mar 22 Python
python利用OpenCV2实现人脸检测
Apr 16 Python
简单实现python收发邮件功能
Jan 05 Python
pycharm+django创建一个搜索网页实例代码
Jan 24 Python
详解Django+Uwsgi+Nginx的生产环境部署
Jun 25 Python
Python爬虫实现获取动态gif格式搞笑图片的方法示例
Dec 24 Python
使用python os模块复制文件到指定文件夹的方法
Aug 22 Python
python 利用pywifi模块实现连接网络破解wifi密码实时监控网络
Sep 16 Python
Pytorch.nn.conv2d 过程验证方式(单,多通道卷积过程)
Jan 03 Python
解析python中的jsonpath 提取器
Jan 18 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/07/14 PHP
PHP观察者模式示例【Laravel框架中有用到】
2018/06/15 PHP
CI框架实现创建自定义类库的方法
2018/12/25 PHP
Javascript调用C#代码
2011/01/17 Javascript
apycom出品的jQuery精美菜单破解方法
2011/02/18 Javascript
JS字符串函数扩展代码
2011/09/13 Javascript
精心挑选的12款优秀的基于jQuery的手风琴效果插件和教程
2012/08/22 Javascript
button没写type=button会导致点击时提交
2014/03/06 Javascript
Javascript实现div的toggle效果实例分析
2015/06/09 Javascript
高效的jquery数字滚动特效
2015/12/17 Javascript
Bootstrap每天必学之附加导航(Affix)插件
2016/04/25 Javascript
nodejs个人博客开发第三步 载入页面
2017/04/12 NodeJs
微信小程序实现添加手机联系人功能示例
2017/11/30 Javascript
CryptoJS中AES实现前后端通用加解密技术
2018/12/18 Javascript
使用webpack搭建vue项目实现脚手架功能
2019/03/15 Javascript
vue项目创建步骤及路由router
2020/01/14 Javascript
JS常见内存泄漏及解决方案解析
2020/05/30 Javascript
[42:32]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第二场 11.27
2020/12/01 DOTA
[38:27]完美世界DOTA2联赛PWL S2 Forest vs FTD.C 第二场 11.26
2020/11/30 DOTA
python获得一个月有多少天的方法
2015/06/04 Python
Python保存MongoDB上的文件到本地的方法
2016/03/16 Python
TensorFlow实现卷积神经网络CNN
2018/03/09 Python
python3用PIL把图片转换为RGB图片的实例
2019/07/04 Python
python的常见矩阵运算(小结)
2019/08/07 Python
django 外键创建注意事项说明
2020/05/20 Python
keras:model.compile损失函数的用法
2020/07/01 Python
python创建文本文件的简单方法
2020/08/30 Python
解决Pycharm 运行后没有输出的问题
2021/02/05 Python
Html5页面在微信端的分享的实现方法
2018/08/30 HTML / CSS
设计师珠宝:Ylang 23
2018/05/11 全球购物
澳大利亚领先的孕妇服装品牌:Mamaway
2018/08/14 全球购物
计算机专业毕业生推荐信
2013/11/25 职场文书
高级编程求职信模板
2014/02/16 职场文书
党员政治学习材料
2014/05/14 职场文书
销售提升方案
2014/06/07 职场文书
mysql数据插入覆盖和时间戳的问题及解决
2022/03/25 MySQL