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中os操作文件及文件路径实例汇总
Jan 15 Python
Python中实现三目运算的方法
Jun 21 Python
python实现汉诺塔递归算法经典案例
Mar 01 Python
python编程羊车门问题代码示例
Oct 25 Python
Python使用flask框架操作sqlite3的两种方式
Jan 31 Python
python构建深度神经网络(续)
Mar 10 Python
Python基于pycrypto实现的AES加密和解密算法示例
Apr 10 Python
Python中numpy模块常见用法demo实例小结
Mar 16 Python
flask框架url与重定向操作实例详解
Jan 25 Python
详解vscode实现远程linux服务器上Python开发
Nov 10 Python
No module named ‘win32gui‘ 的解决方法(踩坑之旅)
Feb 18 Python
Python数据分析入门之数据读取与存储
May 13 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注册和登录界面的实现案例(推荐)
2016/10/24 PHP
跟着JQuery API学Jquery 之三 筛选
2010/04/09 Javascript
jquery实现心算练习代码
2010/12/06 Javascript
JavaScript 基础篇之对象、数组使用介绍(三)
2012/04/07 Javascript
JS onmousemove鼠标移动坐标接龙DIV效果实例
2013/12/16 Javascript
在javascript中实现函数数组的方法
2013/12/25 Javascript
jQuery选择器源码解读(三):tokenize方法
2015/03/31 Javascript
JS设置cookie、读取cookie、删除cookie
2015/04/17 Javascript
JQuery实现Ajax加载图片的方法
2015/12/24 Javascript
详解Angular开发中的登陆与身份验证
2016/07/27 Javascript
JQuery遍历元素的后代和同胞实现方法
2016/09/18 Javascript
bootstrap table 数据表格行内修改的实现代码
2017/02/13 Javascript
bootstrap为水平排列的表单和内联表单设置可选的图标
2017/02/15 Javascript
Nodejs中使用phantom将html转为pdf或图片格式的方法
2017/09/18 NodeJs
Auto.js自动收取自己和好友蚂蚁森林能量脚本
2018/06/28 Javascript
对VUE中的对象添加属性
2018/09/18 Javascript
JavaScript 中的无穷数(Infinity)详解
2020/02/13 Javascript
Vue实现小购物车功能
2020/12/21 Vue.js
[14:51]DOTA2 HEROS教学视频教你分分钟做大人-卓尔游侠
2014/06/13 DOTA
Python 类与元类的深度挖掘 II【经验】
2016/05/06 Python
详解Python的Twisted框架中reactor事件管理器的用法
2016/05/25 Python
使用rst2pdf实现将sphinx生成PDF
2016/06/07 Python
Python的shutil模块中文件的复制操作函数详解
2016/07/05 Python
django允许外部访问的实例讲解
2018/05/14 Python
Python selenium根据class定位页面元素的方法
2019/02/26 Python
tensorflow将图片保存为tfrecord和tfrecord的读取方式
2020/02/17 Python
PyTorch中torch.tensor与torch.Tensor的区别详解
2020/05/18 Python
python如何用matplotlib创建三维图表
2021/01/26 Python
HTML5地理定位实例
2014/10/15 HTML / CSS
《威尼斯的小艇》教学反思
2014/02/17 职场文书
教师廉洁自律承诺书
2014/05/26 职场文书
国际贸易毕业生求职信
2014/07/20 职场文书
县政府班子个人对照检查材料
2014/10/05 职场文书
爱国主义电影观后感
2015/06/18 职场文书
2015年高三教学工作总结
2015/07/21 职场文书
create-react-app开发常用配置教程
2022/06/25 Javascript