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发送邮件实例分享
Jul 28 Python
Python 3.6 性能测试框架Locust安装及使用方法(详解)
Oct 11 Python
Django项目实战之用户头像上传与访问的示例
Apr 21 Python
python实现朴素贝叶斯算法
Nov 19 Python
python批量从es取数据的方法(文档数超过10000)
Dec 27 Python
详解python的四种内置数据结构
Mar 19 Python
Django 重写用户模型的实现
Jul 29 Python
Django restframework 框架认证、权限、限流用法示例
Dec 21 Python
tensorflow如何继续训练之前保存的模型实例
Jan 21 Python
Python编程快速上手——PDF文件操作案例分析
Feb 28 Python
Python爬虫破解登陆哔哩哔哩的方法
Nov 17 Python
快速一键生成Python爬虫请求头
Mar 04 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 网络开发详解之远程文件包含漏洞
2010/04/25 PHP
php文件管理基本功能简单操作
2017/01/16 PHP
TP5(thinkPHP5框架)实现显示错误信息及行号功能的方法
2019/06/03 PHP
仿百度输入框智能提示的js代码
2013/08/22 Javascript
初始Nodejs
2014/11/08 NodeJs
jQuery实现炫酷的鼠标轨迹特效
2015/02/01 Javascript
JavaScript生成福利彩票双色球号码
2015/05/15 Javascript
javascript数据类型验证方法
2015/12/31 Javascript
vue.js实现表格合并示例代码
2016/11/30 Javascript
jstree的简单实例
2016/12/01 Javascript
JS跨域请求外部服务器的资源
2017/02/06 Javascript
薪资那么高的Web前端必看书单
2017/10/13 Javascript
详解Webpack多环境代码打包的方法
2018/08/03 Javascript
微信小程序自定义toast弹窗效果的实现代码
2018/11/15 Javascript
浅谈Vue开发人员的7个最好的VSCode扩展
2021/01/20 Vue.js
跟老齐学Python之集合的关系
2014/09/24 Python
python开发之tkinter实现图形随鼠标移动的方法
2015/11/11 Python
python用BeautifulSoup库简单爬虫实例分析
2018/07/30 Python
python抓取需要扫微信登陆页面
2019/04/29 Python
详解Django定时任务模块设计与实践
2019/07/24 Python
Python如何使用BeautifulSoup爬取网页信息
2019/11/26 Python
Python 模拟动态产生字母验证码图片功能
2019/12/24 Python
Python局部变量与全局变量区别原理解析
2020/07/14 Python
Python reques接口测试框架实现代码
2020/07/28 Python
英国最受欢迎的平价女士时装零售商:Roman Originals
2019/11/02 全球购物
c++工程师面试问题
2013/08/04 面试题
西安交大自主招生自荐信
2014/01/27 职场文书
《风筝》教学反思
2014/04/10 职场文书
大学开学计划书
2014/04/30 职场文书
啤酒节策划方案
2014/05/28 职场文书
护理专业毕业生自荐信
2014/06/15 职场文书
九华山导游词
2015/02/03 职场文书
大学生个人年度总结范文
2015/02/15 职场文书
舌尖上的中国观后感
2015/06/02 职场文书
关于战胜挫折的名言警句大全!
2019/07/05 职场文书
我收到了德劲DE1107
2022/04/05 无线电