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 字符串定义
Sep 25 Python
Python入门学习之字符串与比较运算符
Oct 12 Python
深入理解Python变量与常量
Jun 02 Python
Django Admin 实现外键过滤的方法
Sep 29 Python
python中(str,list,tuple)基础知识汇总
Feb 20 Python
批量将ppt转换为pdf的Python代码 只要27行!
Feb 26 Python
django2+uwsgi+nginx上线部署到服务器Ubuntu16.04
Jun 26 Python
python pygame实现五子棋小游戏
Oct 26 Python
python获取txt文件词向量过程详解
Jul 05 Python
python中return的返回和执行实例
Dec 24 Python
基于Python 函数和方法的区别说明
Mar 24 Python
Python+Selenium自动化环境搭建与操作基础详解
Mar 13 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的FTP学习(四)
2006/10/09 PHP
Could not load type System.ServiceModel.Activation.HttpModule解决办法
2012/12/29 PHP
解析yii数据库的增删查改
2013/06/20 PHP
PHP 返回13位时间戳的实现代码
2016/05/13 PHP
linux下php上传文件注意事项
2016/06/11 PHP
详解PHP变量传值赋值和引用赋值变量销毁
2019/03/23 PHP
可拖动窗口,附带鼠标控制渐变透明,开启关闭功能
2006/06/26 Javascript
javascript addBookmark 加入收藏 多浏览器兼容
2009/08/15 Javascript
基于jquery的direction图片渐变动画效果
2010/05/24 Javascript
Google Maps API地图应用示例分享
2014/10/23 Javascript
2014最热门的JavaScript代码高亮插件推荐
2014/11/25 Javascript
JS基于面向对象实现的拖拽库实例
2015/09/24 Javascript
基于JavaScript操作DOM常用的API小结
2015/12/01 Javascript
JavaScript 2048 游戏实例代码(简单易懂)
2016/03/25 Javascript
jQuery插件实现图片轮播特效
2016/06/16 Javascript
网站发布后Bootstrap框架引用woff字体无法正常显示的解决方法
2016/11/24 Javascript
前端开发之CSS原理详解
2017/03/11 Javascript
nodejs爬虫遇到的乱码问题汇总
2017/04/07 NodeJs
BootStrap Validator 根据条件在JS中添加或移除校验操作
2017/10/12 Javascript
Angular动画实现的2种方式以及添加购物车动画实例代码
2018/08/09 Javascript
使用ThinkJs搭建微信中控服务的实现方法
2019/08/08 Javascript
vue登录注册实例详解
2019/09/14 Javascript
浅谈TypeScript 用 Webpack/ts-node 运行的配置记录
2019/10/11 Javascript
Python过滤函数filter()使用自定义函数过滤序列实例
2014/08/26 Python
使用Python中的greenlet包实现并发编程的入门教程
2015/04/16 Python
Python实现的插入排序算法原理与用法实例分析
2017/11/22 Python
python默认参数调用方法解析
2020/02/09 Python
Python json格式化打印实现过程解析
2020/07/21 Python
详解selenium + chromedriver 被反爬的解决方法
2020/10/28 Python
银行实习人员自我鉴定
2013/09/22 职场文书
最新大学毕业求职简历的自我评价
2013/10/18 职场文书
入伍通知书
2015/04/23 职场文书
卫生保健工作总结2015
2015/05/18 职场文书
小学运动会报道稿
2015/07/22 职场文书
eclipse创建项目没有dynamic web的解决方法
2021/06/24 Java/Android
python机器学习创建基于规则聊天机器人过程示例详解
2021/11/02 Python