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 相关文章推荐
使用beaker让Facebook的Bottle框架支持session功能
Apr 23 Python
Python回调函数用法实例详解
Jul 02 Python
在Python的Django框架中创建和使用模版
Jul 15 Python
Python字典简介以及用法详解
Nov 15 Python
Django中利用filter与simple_tag为前端自定义函数的实现方法
Jun 15 Python
给你选择Python语言实现机器学习算法的三大理由
Nov 15 Python
火车票抢票python代码公开揭秘!
Mar 08 Python
在Mac下使用python实现简单的目录树展示方法
Nov 01 Python
网易有道2017内推编程题 洗牌(python)
Jun 19 Python
简单了解Python生成器是什么
Jul 02 Python
Python爬虫获取op.gg英雄联盟英雄对位胜率的源码
Jan 29 Python
python如何在word中存储本地图片
Apr 07 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定时执行任务实现方法详解(Timer)
2015/07/30 PHP
Yii2使用dropdownlist实现地区三级联动功能的方法
2016/07/18 PHP
PHP中quotemeta()函数的用法讲解
2019/04/04 PHP
基于PHP实现发微博动态代码实例
2020/12/11 PHP
在修改准备发的批量美化select+可修改select时,在非IE下发现了几个问题
2007/01/09 Javascript
最短的javascript:地址栏载入脚本代码
2011/10/13 Javascript
json的定义、标准格式及json字符串检验
2014/05/11 Javascript
JavaScript获取网页中第一个图片id的方法
2015/04/03 Javascript
jquery显示loading图片直到网页加载完成的方法
2015/06/25 Javascript
JavaScript中几种排序算法的简单实现
2015/07/29 Javascript
JS根据浏览器窗口大小实时动态改变网页文字大小的方法
2016/02/25 Javascript
JS动态改变浏览器标题的方法
2016/04/06 Javascript
Angularjs 实现分页功能及示例代码
2016/09/14 Javascript
jQuery生成假加载动画效果
2016/12/01 Javascript
详解如何使用webpack打包JS
2018/06/21 Javascript
使用JavaScript破解web
2018/09/28 Javascript
layui下拉列表select实现可输入查找的方法
2019/09/28 Javascript
jQuery/JS监听input输入框值变化实例
2019/10/17 jQuery
jQuery实现手风琴效果(蒙版)
2020/01/11 jQuery
[03:57]《不朽》——2015DOTA2国际邀请赛—中国军团出征主题曲MV
2015/07/15 DOTA
python中pass语句用法实例分析
2015/04/30 Python
Python第三方库的安装方法总结
2016/06/06 Python
python生成式的send()方法(详解)
2017/05/08 Python
解决Python中list里的中文输出到html模板里的问题
2018/12/17 Python
使用pyshp包进行shapefile文件修改的例子
2019/12/06 Python
pytorch 实现cross entropy损失函数计算方式
2020/01/02 Python
CSS3 渐变(Gradients)之CSS3 径向渐变
2016/07/08 HTML / CSS
CSS3使用border-radius属性制作圆角
2014/12/22 HTML / CSS
深入浅析css3 border-image边框图像详解
2015/11/24 HTML / CSS
linux面试题参考答案(9)
2015/01/07 面试题
人事部岗位职责范本
2014/03/05 职场文书
搞笑婚礼主持词
2014/03/13 职场文书
社区扶贫帮困工作总结
2015/05/20 职场文书
2016年小学生新年寄语
2015/08/18 职场文书
三年级作文之小小梦想
2019/12/06 职场文书