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命令启动Web服务器实例详解
Feb 23 Python
Python配置mysql的教程(推荐)
Oct 13 Python
python命令行解析之parse_known_args()函数和parse_args()使用区别介绍
Jan 24 Python
numpy给array增加维度np.newaxis的实例
Nov 01 Python
实例讲解Python中整数的最大值输出
Mar 17 Python
对Python生成器、装饰器、递归的使用详解
Jul 19 Python
Python socket 套接字实现通信详解
Aug 27 Python
Tensorflow 模型转换 .pb convert to .lite实例
Feb 12 Python
基于Python第三方插件实现西游记章节标注汉语拼音的方法
May 22 Python
python 通过 pybind11 使用Eigen加速代码的步骤
Dec 07 Python
python 对xml解析的示例
Feb 27 Python
总结Python连接CS2000的详细步骤
Jun 23 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实现redis数据库指定库号迁移的方法
2015/01/14 PHP
php中preg_match的isU代表什么意思
2015/10/01 PHP
详解WordPress中用于合成数组的wp_parse_args()函数
2015/12/18 PHP
PHP 输出缓冲控制(Output Control)详解
2016/08/25 PHP
PHP获取真实IP及IP模拟方法解析
2020/11/24 PHP
你必须知道的Javascript知识点之"this指针"的应用
2013/04/23 Javascript
innerHTML中标签可以换行的方法汇总
2015/08/14 Javascript
javascript执行环境及作用域详解
2016/05/05 Javascript
Vue过滤器的用法和自定义过滤器使用
2017/02/08 Javascript
vue动态生成dom并且自动绑定事件
2017/04/19 Javascript
Vue仿手机qq的实例代码(demo)
2017/09/08 Javascript
IE11下使用canvas.toDataURL报SecurityError错误的解决方法
2017/11/19 Javascript
基于jquery.page.js实现分页效果
2018/01/01 jQuery
JS实现带导航城市列表以及输入搜索功能
2018/01/04 Javascript
Vue引入sass并配置全局变量的方法
2018/06/27 Javascript
微信小程序之自定义组件的实现代码(附源码)
2018/08/02 Javascript
自己动手封装一个React Native多级联动
2018/09/19 Javascript
微信小程序自定义轮播图
2018/11/04 Javascript
Nuxt.js 数据双向绑定的实现
2019/02/17 Javascript
使用JavaScript解析URL的方法示例
2019/03/01 Javascript
浅谈JavaScript闭包
2019/04/09 Javascript
JS大坑之19位数的Number型精度丢失问题详解
2019/04/22 Javascript
Vue Echarts实现可视化世界地图代码实例
2019/05/07 Javascript
js canvas实现五子棋小游戏
2021/01/22 Javascript
Python 稀疏矩阵-sparse 存储和转换
2017/05/27 Python
2018年Python值得关注的开源库、工具和开发者(总结篇)
2018/01/04 Python
pywinauto自动化操作记事本
2019/08/26 Python
python库matplotlib绘制坐标图
2019/10/18 Python
Python网络编程之使用TCP方式传输文件操作示例
2019/11/01 Python
基于Python检测动态物体颜色过程解析
2019/12/04 Python
python3 requests库实现多图片爬取教程
2019/12/18 Python
为什么说python适合写爬虫
2020/06/11 Python
HTML5之多线程(Web Worker)
2019/01/02 HTML / CSS
第二课堂活动总结
2014/05/07 职场文书
公司宣传语大全
2015/07/13 职场文书
2015年“我们的节日·中秋节”活动总结
2015/07/30 职场文书