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中正则表达式的用法实例汇总
Aug 18 Python
详解Python中heapq模块的用法
Jun 28 Python
python中判断文件编码的chardet(实例讲解)
Dec 21 Python
用python脚本24小时刷浏览器的访问量方法
Dec 07 Python
Python除法之传统除法、Floor除法及真除法实例详解
May 23 Python
详解opencv中画圆circle函数和椭圆ellipse函数
Dec 27 Python
pytorch 中pad函数toch.nn.functional.pad()的用法
Jan 08 Python
Python : turtle色彩控制实例详解
Jan 19 Python
解决Python paramiko 模块远程执行ssh 命令 nohup 不生效的问题
Jul 14 Python
2021年的Python 时间轴和即将推出的功能详解
Jul 27 Python
python网络爬虫实现发送短信验证码的方法
Feb 25 Python
Python上下文管理器Content Manager
Jun 26 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
天使彦史上最神还原,性别曝光的那一刻,百万网友恋爱了
2020/03/02 国漫
基于Snoopy的PHP近似完美获取网站编码的代码
2011/10/23 PHP
ThinkPHP表单令牌错误的相关解决方法分析
2016/05/20 PHP
用JavaScript实现仿Windows关机效果
2007/03/10 Javascript
DOM 基本方法
2009/07/18 Javascript
原生JavaScript+LESS实现瀑布流
2014/12/12 Javascript
浅谈EasyUI中编辑treegrid的方法
2015/03/01 Javascript
JS中Json数据的处理和解析JSON数据的方法详解
2016/06/29 Javascript
Javascript highcharts 饼图显示数量和百分比实例代码
2016/12/06 Javascript
js仿百度音乐全选操作
2017/01/13 Javascript
JavaScript实现瀑布流图片效果
2017/06/30 Javascript
weex slider实现滑动底部导航功能
2017/08/28 Javascript
详谈Node.js之操作文件系统
2017/08/29 Javascript
vuex 的简单使用
2018/03/22 Javascript
vue.js自定义组件实现v-model双向数据绑定的示例代码
2020/01/08 Javascript
[14:57]DOTA2 HEROS教学视频教你分分钟做大人-幽鬼
2014/06/13 DOTA
python实现微信跳一跳辅助工具步骤详解
2018/01/04 Python
Python去除、替换字符串空格的处理方法
2018/04/01 Python
Pandas 合并多个Dataframe(merge,concat)的方法
2018/06/08 Python
详解Python 重学requests发起请求的基本方式
2020/02/07 Python
Django如何批量创建Model
2020/09/01 Python
scrapy-redis分布式爬虫的搭建过程(理论篇)
2020/09/29 Python
K近邻法(KNN)相关知识总结以及如何用python实现
2021/01/28 Python
伦敦所有西区剧院演出官方票务代理:Theatre Tickets Direct
2017/05/26 全球购物
写一个函数,要求输入一个字符串和一个字符长度,对该字符串进行分隔
2015/07/30 面试题
英语系本科生个人求职信
2013/09/21 职场文书
轻金属冶金专业毕业生自荐信
2013/11/02 职场文书
预备党员入党自我评价范文
2014/03/10 职场文书
班主任工作经验交流材料
2014/05/13 职场文书
2015年仓库管理员工作总结
2015/04/21 职场文书
导游词之澳门妈祖庙
2019/12/19 职场文书
用Python提取PDF表格的方法
2021/04/11 Python
超外差式晶体管收音机的组装与统调
2021/04/22 无线电
详解MySQL的主键查询为什么这么快
2022/04/03 MySQL
Java后端 Dubbo retries 超时重试机制的解决方案
2022/04/14 Java/Android
Win11如何默认打开软件界面最大化?Win11默认打开软件界面最大化的方法
2022/07/15 数码科技