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中用split()方法分割字符串的使用介绍
May 20 Python
python基于twisted框架编写简单聊天室
Jan 02 Python
python简单操作excle的方法
Sep 12 Python
对Python发送带header的http请求方法详解
Jan 02 Python
Python类的继承用法示例
Jan 31 Python
Python 词典(Dict) 加载与保存示例
Dec 06 Python
python使用SQLAlchemy操作MySQL
Jan 02 Python
Python简单实现区域生长方式
Jan 16 Python
浅谈tensorflow中Dataset图片的批量读取及维度的操作详解
Jan 20 Python
Python识别html主要文本框过程解析
Feb 18 Python
解决echarts中饼图标签重叠的问题
May 16 Python
Python OpenCV中的numpy与图像类型转换操作
Dec 11 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&&mysql)六
2006/10/09 PHP
PHP如何编写易读的代码
2007/07/10 PHP
php中让上传的文件大小在上传前就受限制的两种解决方法
2013/06/24 PHP
php htmlentities()函数的定义和用法
2016/05/13 PHP
PHP+Ajax实现验证码的实时验证
2016/07/20 PHP
laravel如何开启跨域功能示例详解
2017/08/31 PHP
javascript入门·对象属性方法大总结
2007/10/01 Javascript
JavaScript Cookie 直接浏览网站分网址
2009/12/08 Javascript
返回对象在当前级别中是第几个元素的实现代码
2011/01/20 Javascript
jquery批量设置属性readonly和disabled的方法
2014/01/24 Javascript
jQuery使用之处理页面元素用法实例
2015/01/19 Javascript
jQuery插件Validate实现自定义表单验证
2016/01/18 Javascript
JavaScript+html5 canvas实现本地截图教程
2020/04/16 Javascript
不定义JQuery插件 不要说会JQuery
2016/03/07 Javascript
深入理解MVC中的时间js格式化
2016/05/19 Javascript
js以及jquery实现手风琴效果
2020/04/17 Javascript
bootstrap模态框远程示例代码分享
2017/05/22 Javascript
Vue 组件间的样式冲突污染
2017/08/31 Javascript
Windows下使用Nodejs运行js的方法
2017/09/02 NodeJs
Vue监听一个数组id是否与另一个数组id相同的方法
2018/09/26 Javascript
vue组件内部引入外部js文件的方法
2020/01/18 Javascript
uni-app从安装到卸载的入门教程
2020/05/15 Javascript
python单线程实现多个定时器示例
2014/03/30 Python
Python学习笔记_数据排序方法
2014/05/22 Python
Python中import导入上一级目录模块及循环import问题的解决
2016/06/04 Python
Python设计模式之抽象工厂模式
2016/08/25 Python
python3 破解 geetest(极验)的滑块验证码功能
2018/02/24 Python
基于scrapy的redis安装和配置方法
2018/06/13 Python
Python os模块常用方法和属性总结
2020/02/20 Python
python 30行代码实现蚂蚁森林自动偷能量
2021/02/08 Python
英国鞋类及配饰零售商:Kurt Geiger
2017/02/04 全球购物
Sunglasses Shop英国:欧洲领先的太阳镜在线供应商之一
2018/09/19 全球购物
金属材料工程个人求职的自我评价
2013/12/04 职场文书
大学生职业规划书的范本
2014/02/18 职场文书
HTML页面滚动时部分内容位置固定不滚动的实现
2021/04/14 HTML / CSS
Python查找算法的实现 (线性、二分,分块、插值查找算法)
2022/04/24 Python