python下载图片实现方法(超简单)


Posted in Python onJuly 21, 2017

我们有时候会需要在网上查找并下载图片,当数量比较少的时候,点击右键保存,很轻松就可以实现图片的下载,但是有些图片进行了特殊设置,点击右键没有显示保存选项,或者需要下载很多图片,这样的情况,写一段Python爬虫代码就可以轻松解决!

一、页面抓取

#coding=utf-8
import urllib

def getHtml(url):

  page = urllib.urlopen(url)
    html = page.read()
    return html

html = getHtml("https://tieba.baidu.com/p/5582243679")

print html

页面数据抓取过程定义了getHtml()函数,其作用是给getHtml()传递一个网址,最终进行整个页面的下载。

二、页面数据筛选

import re
import urllib

def getHtml(url):
    page = urllib.urlopen(url)
    html = page.read()
    return html

def getImg(html):
    reg = r'src="(.+?\.jpg)" pic_ext'
    imgre = re.compile(reg)
    imglist = re.findall(imgre,html)

  return imglist

html = getHtml("https://tieba.baidu.com/p/5582243679")

print getImg(html)

页面数据筛选中,定义了一个新的函数getImg(),该函数的功能是筛选出.jpg格式的图片地址。

三、图片下载

#coding=utf-8
import urllib

import re

def getHtml(url):

  page = urllib.urlopen(url)

  html = page.read()
    return html

def getImg(html):

  reg = r'src="(.+?\.jpg)" pic_ext'
    imgre = re.compile(reg)
  
imglist = re.findall(imgre,html)
    x = 0
    for imgurl in imglist:

    urllib.urlretrieve(imgurl,'%s.jpg' % x)

    x+=1

html = getHtml("https://tieba.baidu.com/p/5582243679")

print getImg(html)

通过for循环获得所有符合条件的图片网址,并采用urllib.urlretrieve()方法,将远程数据下载到本地,并重新命名!

以下是补充

如下所示:

import urllib.request
response = urllib.request.urlopen('https://3water.com/g/500/600')
cat_img = response.read()

with open('cat_500_600.jpg','wb') as f:
 f.write(cat_img)

urlopen()括号里既可以是一个字符串也可以是一个request对象,当传入字符串的时候会转换成一个request对象,因此代码

response = urllib.request.urlopen('https://3water.com/g/500/600') 也可以写成

req = urllib.request.Request('https://3water.com/g/500/600')

1、response = urllib.request.urlopen(req)
2、responce还有geturl,info,getcode方法

代码with open('cat_500_600.jpg','wb') as f:

f.write(cat_img)等价于

1、f = open('cat_500_600.jpg','wb')

2、try:

3、 data = f.write(cat_img)

4、finally:

5、 f.close()

以上这篇python下载图片实现方法(超简单)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 读取某个目录下所有的文件实例
Jun 23 Python
PyCharm 设置SciView工具窗口的方法
Jan 15 Python
详解python的四种内置数据结构
Mar 19 Python
Python实现使用request模块下载图片demo示例
May 24 Python
python通过opencv实现图片裁剪原理解析
Jan 19 Python
python学习将数据写入文件并保存方法
Jun 07 Python
Python学习之路之pycharm的第一个项目搭建过程
Jun 18 Python
编译 pycaffe时报错:fatal error: numpy/arrayobject.h没有那个文件或目录
Nov 29 Python
python爬虫爬取图片的简单代码
Jan 18 Python
Python序列化与反序列化相关知识总结
Jun 08 Python
如何利用python实现列表嵌套字典取值
Jun 10 Python
Python基于Pymssql模块实现连接SQL Server数据库的方法详解
Jul 20 #Python
Python使用内置json模块解析json格式数据的方法
Jul 20 #Python
Python轻量级ORM框架Peewee访问sqlite数据库的方法详解
Jul 20 #Python
Python函数式编程
Jul 20 #Python
python 换位密码算法的实例详解
Jul 19 #Python
python实现rsa加密实例详解
Jul 19 #Python
Python中标准库OS的常用方法总结大全
Jul 19 #Python
You might like
php公用函数列表[正则]
2007/02/22 PHP
thinkphp判断访客为手机端或PC端的方法
2014/11/24 PHP
php抓取并保存网站图片的实现代码
2015/10/28 PHP
AJAX PHP无刷新form表单提交的简单实现(推荐)
2016/09/09 PHP
PHP获取redis里不存在的6位随机数应用示例【设置24小时过时】
2017/06/07 PHP
PHP whois查询类定义与用法示例
2019/04/03 PHP
Javascript 遍历对象中的子对象
2009/07/03 Javascript
深入理解JavaScript定时机制
2010/10/29 Javascript
Js,alert出现乱码问题的解决方法
2013/06/19 Javascript
js用typeof方法判断undefined类型
2014/07/15 Javascript
JQuery表单验证插件EasyValidator用法分析
2014/11/15 Javascript
jquery中EasyUI使用技巧小结
2015/02/10 Javascript
Javascript中的方法链(Method Chaining)介绍
2015/03/15 Javascript
JavaScript代码生成PDF文件的方法
2016/02/26 Javascript
JavaScript实现显示函数调用堆栈的方法
2016/04/21 Javascript
js验证框架之RealyEasy验证详解
2016/06/08 Javascript
解决Nodejs全局安装模块后找不到命令的问题
2018/05/15 NodeJs
AngularJs1.x自定义指令独立作用域的函数传入参数方法
2018/10/09 Javascript
JavaScript数据结构与算法之二叉树添加/删除节点操作示例
2019/03/01 Javascript
CKeditor富文本编辑器使用技巧之添加自定义插件的方法
2019/06/14 Javascript
微信小程序实现圆形进度条动画
2020/11/18 Javascript
Node.js+Vue脚手架环境搭建的方法步骤
2020/03/08 Javascript
基于vue3.0.1beta搭建仿京东的电商H5项目
2020/05/06 Javascript
详解vue中在父组件点击按钮触发子组件的事件
2020/11/13 Javascript
代码块高亮可复制显示js插件highlight.js+clipboard.js整合
2021/02/15 Javascript
python读取和保存视频文件
2018/04/16 Python
Python pymongo模块常用操作分析
2018/09/01 Python
利用Python对文件夹下图片数据进行批量改名的代码实例
2019/02/21 Python
Python利用matplotlib绘制散点图的新手教程
2020/11/05 Python
咖啡为什么会有酸味?你喝到的咖啡為什麼是酸的?
2021/03/17 冲泡冲煮
英语专业毕业个人求职自荐信
2013/09/21 职场文书
五十岁生日宴会答谢词
2014/01/15 职场文书
家长对孩子评语
2014/01/30 职场文书
博士生导师推荐信
2014/07/08 职场文书
Python实现智慧校园自动评教全新版
2021/06/18 Python
Python OpenCV之常用滤波器使用详解
2022/04/07 Python