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编程-将Python程序转化为可执行程序[整理]
Apr 09 Python
Python的垃圾回收机制深入分析
Jul 16 Python
Python XML RPC服务器端和客户端实例
Nov 22 Python
python 开发的三种运行模式详细介绍
Jan 18 Python
python 链接和操作 memcache方法
Mar 04 Python
Python3连接SQLServer、Oracle、MySql的方法
Jun 28 Python
如何在Django中添加没有微秒的 DateTimeField 属性详解
Jan 30 Python
深入浅析python3中的unicode和bytes问题
Jul 03 Python
python使用socket 先读取长度,在读取报文内容示例
Sep 26 Python
使用Python爬虫库BeautifulSoup遍历文档树并对标签进行操作详解
Jan 25 Python
浅析pip安装第三方库及pycharm中导入第三方库的问题
Mar 10 Python
python运行脚本文件的三种方法实例
Jun 25 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利用cookie实现访问次数统计代码
2011/05/19 PHP
phpadmin如何导入导出大数据文件及php.ini参数修改
2013/02/18 PHP
PHP框架Laravel的小技巧两则
2015/02/10 PHP
PHP使用fopen与file_get_contents读取文件实例分享
2016/03/04 PHP
PHP结合jquery ajax实现上传多张图片,并限制图片大小操作示例
2019/03/01 PHP
安装PHP扩展时解压官方 tgz 文件后没有configure文件无法进行配置编译的问题
2020/08/26 PHP
浅析JQuery中的html(),text(),val()区别
2014/09/01 Javascript
jQuery中$.click()无效问题分析
2015/01/29 Javascript
jQuery使用$.each遍历json数组的简单实现方法
2016/04/18 Javascript
js的各种排序算法实现(总结)
2016/07/23 Javascript
javascript cookie用法基础教程(概念,设置,读取及删除)
2016/09/20 Javascript
JavaScript 最佳实践:帮你提升代码质量
2016/12/03 Javascript
Vue.js tab实现选项卡切换
2017/05/16 Javascript
JS基于设计模式中的单例模式(Singleton)实现封装对数据增删改查功能
2018/02/06 Javascript
浅谈在vue中用webpack打包之后运行文件的问题以及相关配置方法
2018/02/21 Javascript
vue webpack实用技巧总结
2018/04/24 Javascript
Angular网络请求的封装方法
2018/05/22 Javascript
vue中进入详情页记住滚动位置的方法(keep-alive)
2018/09/21 Javascript
vue集成chart.js的实现方法
2019/08/20 Javascript
[02:47]DOTA2英雄基础教程 野性怒吼兽王
2013/12/05 DOTA
Python查看多台服务器进程的脚本分享
2014/06/11 Python
使用Python从有道词典网页获取单词翻译
2016/07/03 Python
Django框架中间件(Middleware)用法实例分析
2019/05/24 Python
Python+Tensorflow+CNN实现车牌识别的示例代码
2019/10/11 Python
Django框架教程之中间件MiddleWare浅析
2019/12/29 Python
宝塔面板出现“open_basedir restriction in effect. ”的解决方法
2021/03/14 PHP
H5 meta小结(前端必看篇)
2016/08/24 HTML / CSS
将n个数按输入顺序的逆序排列,用函数实现
2012/11/14 面试题
2014升学宴答谢词
2014/01/26 职场文书
2014年师德师风学习材料
2014/05/16 职场文书
2014领导班子四风问题查摆思想汇报
2014/09/13 职场文书
2014年大堂经理工作总结
2014/11/21 职场文书
校长个人总结
2015/03/03 职场文书
爱心捐助活动总结
2015/05/09 职场文书
关于社会实践的心得体会(2016最新版)
2016/01/25 职场文书
社交电商模式的兴起:这些新的商机千万别错过
2019/07/26 职场文书