Python实现批量下载图片的方法


Posted in Python onJuly 08, 2015

本文实例讲述了Python实现批量下载图片的方法。分享给大家供大家参考。具体实现方法如下:

#!/usr/bin/env python
#-*-coding:utf-8-*-'
#Filename:download_file.py
import os,sys
import re
import urllib
import urllib2
base_url = 'xxx'
array_url = list()
pic_url = list()
inner_url = list()
def get_array_url(array_url,base_url):
  content = urllib.urlopen(base_url).read()
  array_url_a = re.findall(r'/rihan.*?.html',content)
  for url in array_url_a:
    url_a = 'xxx'+url
    #print url_a
    array_url.append(url_a)
def get_inner_url(array_url,inner_url):
  inner_url.append(array_url)
  content = urllib.urlopen(array_url[10]).read()
  content = content.replace(" ","")
  url_a = re.findall(r'<li>.*?</li>',content)
  for i in url_a:
    url = re.findall(r'ahref=\\'.*?.html\\'target',i)
    if len(url)>0:
      # print url[0]
      url_b = re.sub(r'ahref=\\'','',url[0])
      # print url_b
      url_c = re.sub(r'\\'target','',url_b)
      url_c = 'http://xxx/'+re.sub(r'/.*/','',url_c)
      inner_url.append(url_c)
  del inner_url[1]
  # print inner_url
def get_pic_url(pic_url,inner_url,array_url):
  content = urllib.urlopen(array_url).read()
  pic_url_a = re.findall(r'center.*?.jpg',content)
  print 'bbbbbbbbb',len(pic_url_a)
  pic_url_a = re.findall(r'http://.*.jpg',pic_url_a[0])
  pic_url.append(pic_url_a[0])
  j=2
  for i in inner_url:
    jj = '/'+str(j)+'.jpg'
    pic = re.sub(r'/1.jpg',jj,pic_url_a[0])
    pic_url.append(pic)
    j = j+1
  del pic_url[-1]
  for i in pic_url:
    print i
def urlcallback(a,b,c):
  """
    call back function
    a,已下载的数据块
    b,数据块的大小
    c,远程文件的大小
  """
  print "callback"
  prec=100.0*a*b/c
  if 100 < prec:
    prec=100
  print "%.2f%%"%(prec,)
def download(img_url,file_num):
    for img in img_url:
      print img
      img_name = re.sub(r'http://.*/','',img)
      path = 'C:/'+str(file_num)+'/'+img_name
      urllib.urlretrieve(img,path,urlcallback)
get_array_url(array_url,base_url)
file_num = 3
#download(pic_url,file_num)
get_inner_url(url,inner_url)
get_pic_url(pic_url,inner_url,url)
'''
for url in array_url:
  print url
  # get_inner_url(url,inner_url)
 # get_pic_url(pic_url,inner_url)
  get_inner_url(url,inner_url)
  get_pic_url(pic_url,inner_url,url)
  download(pic_url,file_num)
  file_num = file_num+1
  del inner_url[:]
  del pic_url[:]
'''

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
Python获取脚本所在目录的正确方法
Apr 15 Python
Python图形绘制操作之正弦曲线实现方法分析
Dec 25 Python
PyQt5每天必学之QSplitter实现窗口分隔
Apr 19 Python
详解Python字典的操作
Mar 04 Python
两个元祖T1=('a', 'b'),T2=('c', 'd')使用匿名函数将其转变成[{'a': 'c'},{'b': 'd'}]的几种方法
Mar 05 Python
django的model操作汇整详解
Jul 26 Python
python系统指定文件的查找只输出目录下所有文件及文件夹
Jan 19 Python
python 按钮点击关闭窗口的实现
Mar 04 Python
基于Python计算圆周率pi代码实例
Mar 25 Python
浅谈Python协程
Jun 17 Python
python将YUV420P文件转PNG图片格式的两种方法
Jan 22 Python
浅谈Python列表嵌套字典转化的问题
Apr 07 Python
python数据结构之图的实现方法
Jul 08 #Python
python数据结构之图深度优先和广度优先实例详解
Jul 08 #Python
python中偏函数partial用法实例分析
Jul 08 #Python
Python使用bs4获取58同城城市分类的方法
Jul 08 #Python
Python实现批量修改文件名实例
Jul 08 #Python
Python查询阿里巴巴关键字排名的方法
Jul 08 #Python
浅谈Python中的闭包
Jul 08 #Python
You might like
环境会对咖啡种植有什么影响
2021/03/03 咖啡文化
php实现RSA加密类实例
2015/03/26 PHP
thinkphp中多表查询中防止数据重复的sql语句(必看)
2016/09/22 PHP
测试你的JS的掌握程度的代码
2009/12/09 Javascript
js 编程笔记 无名函数
2011/06/28 Javascript
jquery ajax属性async(同步异步)示例
2013/11/05 Javascript
JS控件ASP.NET的treeview控件全选或者取消(示例代码)
2013/12/16 Javascript
JavaScript常用脚本汇总(三)
2015/03/04 Javascript
JQuery包裹DOM节点的方法
2015/06/11 Javascript
JavaScript的Number对象的toString()方法
2015/12/18 Javascript
JavaScript的变量声明提升问题浅析(Hoisting)
2016/11/30 Javascript
Angularjs中的ui-bootstrap的使用教程
2017/02/19 Javascript
JavaScript门面模式详解
2017/10/19 Javascript
Vue.js结合bootstrap前端实现分页和排序效果
2018/12/29 Javascript
使用p5.js实现动态GIF图片临摹重现
2019/10/23 Javascript
javascript中导出与导入实现模块化管理教程
2020/12/03 Javascript
Python列表append和+的区别浅析
2015/02/02 Python
Python中绑定与未绑定的类方法用法分析
2016/04/29 Python
python学习 流程控制语句详解
2016/06/01 Python
python3 拼接字符串的7种方法
2018/09/12 Python
pandas.cut具体使用总结
2019/06/24 Python
10款最好的Python开发编辑器
2019/07/03 Python
Python实现队列的方法示例小结【数组,链表】
2020/02/22 Python
Python3 xml.etree.ElementTree支持的XPath语法详解
2020/03/06 Python
Keras构建神经网络踩坑(解决model.predict预测值全为0.0的问题)
2020/07/07 Python
Python生成pdf目录书签的实例方法
2020/10/29 Python
Python基于template实现字符串替换
2020/11/27 Python
HTML5 Canvas——用路径描画线条实例介绍
2013/06/09 HTML / CSS
Kaufmann Mercantile官网:家居装饰、配件、户外及更多
2018/09/28 全球购物
SmartBuyGlasses德国:购买太阳镜和眼镜
2019/08/20 全球购物
股权投资意向书
2014/04/01 职场文书
5s标语大全
2014/06/23 职场文书
夫妻分居协议书范本(有子女版)
2014/11/01 职场文书
工作推荐信模板
2015/03/25 职场文书
5种方法告诉你如何使JavaScript 代码库更干净
2021/09/15 Javascript
Springboot集成kafka高级应用实战分享
2022/08/14 Java/Android