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去掉字符串中空格的方法
Mar 11 Python
Python实现控制台输入密码的方法
May 29 Python
分享一下Python 开发者节省时间的10个方法
Oct 02 Python
Python中元组,列表,字典的区别
May 21 Python
Python计算两个日期相差天数的方法示例
May 23 Python
如何用Python实现简单的Markdown转换器
Jul 16 Python
Python2和Python3的共存和切换使用
Apr 12 Python
TensorFlow Saver:保存和读取模型参数.ckpt实例
Feb 10 Python
PyQt5实现仿QQ贴边隐藏功能的实例代码
May 24 Python
Python使用for生成列表实现过程解析
Sep 22 Python
详解基于Scrapy的IP代理池搭建
Sep 29 Python
Python机器学习之逻辑回归
May 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与ASP
2006/10/09 PHP
phpmail类发送邮件函数代码
2012/02/20 PHP
php模拟ping命令(php exec函数的使用方法)
2013/10/25 PHP
PHP解耦的三重境界(浅谈服务容器)
2017/03/13 PHP
php-msf源码详解
2017/12/25 PHP
jQuery学习3:操作元素属性和特性
2010/02/07 Javascript
javascript encodeURI和encodeURIComponent的比较
2010/04/03 Javascript
jquery实现多屏多图焦点图切换特效的方法
2015/05/04 Javascript
javascript中SetInterval与setTimeout的定时器用法
2015/08/24 Javascript
基于Jquery easyui 选中特定的tab
2015/11/17 Javascript
解决给dom元素绑定click等事件无效问题的方法
2017/02/17 Javascript
Angularjs 实现移动端在线测评效果(推荐)
2017/04/05 Javascript
vue 引入公共css文件的简单方法(推荐)
2018/01/20 Javascript
angular2 NgModel模块的具体使用方法
2019/04/10 Javascript
JavaScript实现模态对话框实例
2020/01/13 Javascript
JavaScript实现网页计算器功能
2020/10/29 Javascript
antd design table更改某行数据的样式操作
2020/10/31 Javascript
零基础学Python(一)Python环境安装
2014/08/20 Python
Python中__name__的使用实例
2015/04/14 Python
Python中用sleep()方法操作时间的教程
2015/05/22 Python
基于wxpython实现的windows GUI程序实例
2015/05/30 Python
深入解析Python中的线程同步方法
2016/06/14 Python
python制作爬虫爬取京东商品评论教程
2016/12/16 Python
浅谈Python 的枚举 Enum
2017/06/12 Python
使用Anaconda3建立虚拟独立的python2.7环境方法
2018/06/11 Python
Python脚本操作Excel实现批量替换功能
2019/11/20 Python
python中Ansible模块的Playbook的具体使用
2020/05/28 Python
MONNIER Frères英国官网:源自巴黎女士奢侈品配饰电商平台
2018/12/06 全球购物
英国最受欢迎的在线隐形眼镜商店:VisionDirect.co.uk
2018/12/06 全球购物
中级会计职业生涯规划范文
2014/01/16 职场文书
销售顾问工作计划书
2014/09/15 职场文书
优秀大学生事迹材料
2014/12/24 职场文书
法律讲堂观后感
2015/06/11 职场文书
党组织关系的介绍信模板
2019/06/21 职场文书
OpenCV绘制圆端矩形的示例代码
2021/08/30 Python
nginx实现多geoserver服务的负载均衡
2022/05/15 Servers