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实现从字符串中找出字符1的位置以及个数的方法
Aug 25 Python
Python中类型关系和继承关系实例详解
May 25 Python
python实现逻辑回归的方法示例
May 02 Python
Python编程实现二分法和牛顿迭代法求平方根代码
Dec 04 Python
对numpy中的transpose和swapaxes函数详解
Aug 02 Python
使用django的objects.filter()方法匹配多个关键字的方法
Jul 18 Python
django多文件上传,form提交,多对多外键保存的实例
Aug 06 Python
Tensorflow实现多GPU并行方式
Feb 03 Python
python str字符串转uuid实例
Mar 03 Python
Python pandas如何向excel添加数据
May 22 Python
python中tkinter窗口位置\坐标\大小等实现示例
Jul 09 Python
python爬虫---requests库的用法详解
Sep 28 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
PHILIPS D1835/D1875的电路分析与打理
2021/03/02 无线电
vBulletin Forum 2.3.xx SQL Injection
2006/10/09 PHP
PHP正确配置mysql(apache环境)
2011/08/28 PHP
解析php入库和出库
2013/06/25 PHP
javascript数组与php数组的地址传递及值传递用法实例
2015/01/22 PHP
php将print_r处理后的数据还原为原始数组的解决方法
2016/11/02 PHP
js实现单一html页面两套css切换代码
2013/04/11 Javascript
浅析return false的正确使用
2013/11/04 Javascript
js写的方法实现上传图片之后查看大图
2014/03/05 Javascript
浅谈javascript中this在事件中的应用
2015/02/15 Javascript
基于bootstrap3和jquery的分页插件
2015/07/31 Javascript
KnockoutJS 3.X API 第四章之表单submit、enable、disable绑定
2016/10/10 Javascript
原生js简单实现放大镜特效
2017/05/16 Javascript
jquery.guide.js新版上线操作向导镂空提示jQuery插件(推荐)
2017/05/20 jQuery
详解windows下vue-cli及webpack 构建网站(三)使用组件
2017/06/17 Javascript
Vue封装一个简单轻量的上传文件组件的示例
2018/03/21 Javascript
详解Node.js读写中文内容文件操作
2018/10/10 Javascript
vue组件暴露和.js文件暴露接口操作
2020/08/11 Javascript
在项目vue中使用echarts的操作步骤
2020/09/07 Javascript
vue-cli脚手架的.babelrc文件用法说明
2020/09/11 Javascript
jQuery实现推拉门效果
2020/10/19 jQuery
[13:56]DAC2018 4.5SOLO赛决赛 MidOne vs Paparazi第一场
2018/04/06 DOTA
Python显示进度条的方法
2014/09/20 Python
python 把文件中的每一行以数组的元素放入数组中的方法
2018/04/29 Python
Django 浅谈根据配置生成SQL语句的问题
2018/05/29 Python
浅谈关于Python3中venv虚拟环境
2018/08/01 Python
Python流程控制 while循环实现解析
2019/09/02 Python
Python基于wordcloud及jieba实现中国地图词云图
2020/06/09 Python
CSS3中的弹性布局em运用入门详解 1em等于多少像素
2021/02/08 HTML / CSS
最好的意大利皮夹克:D’Arienzo
2018/12/04 全球购物
公司庆典邀请函范文
2014/01/13 职场文书
公司员工检讨书
2014/02/08 职场文书
三年级上册科学教学计划
2015/01/21 职场文书
杨善洲观后感
2015/06/04 职场文书
小学开学典礼新闻稿
2015/07/17 职场文书
MySQL中TIMESTAMP类型返回日期时间数据中带有T的解决
2022/12/24 MySQL