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 自动安装 Rising 杀毒软件
Apr 24 Python
Python中的两个内置模块介绍
Apr 05 Python
Python中用于检查英文字母大写的isupper()方法
May 19 Python
基于Python_脚本CGI、特点、应用、开发环境(详解)
May 23 Python
Python实现文件内容批量追加的方法示例
Aug 29 Python
Python通过matplotlib绘制动画简单实例
Dec 13 Python
python中列表和元组的区别
Dec 18 Python
TensorFlow搭建神经网络最佳实践
Mar 09 Python
Python3爬虫学习之MySQL数据库存储爬取的信息详解
Dec 12 Python
python点击鼠标获取坐标(Graphics)
Aug 10 Python
在Python中预先初始化列表内容和长度的实现
Nov 28 Python
python库sklearn常用操作
Aug 23 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
一步一步学习PHP(7) php 字符串相关应用
2010/03/05 PHP
PHP-redis中文文档介绍
2013/02/07 PHP
深入PHP FTP类的详解
2013/06/13 PHP
php中常量DIRECTORY_SEPARATOR用法深入分析
2014/11/14 PHP
CodeIgniter开发实现支付宝接口调用的方法示例
2016/11/14 PHP
Laravel 创建可以传递参数 Console服务的例子
2019/10/14 PHP
Laravel 实现添加多语言提示信息
2019/10/25 PHP
PHP日期和时间函数的使用示例详解
2020/08/06 PHP
JavaScript 参考教程
2006/12/29 Javascript
JS 判断代码全收集
2009/04/28 Javascript
Extjs学习笔记之六 面版
2010/01/08 Javascript
jquery jqPlot API 中文使用教程(非常强大的图表工具)
2011/08/15 Javascript
Javascript Web Slider 焦点图示例源码
2013/10/10 Javascript
jQuery实现表格行和列的动态添加与删除方法【测试可用】
2016/08/01 Javascript
jQuery Validate 相关参数及常用的自定义验证规则
2017/03/06 Javascript
bootstrap table合并行数据并居中对齐效果
2018/10/17 Javascript
[17:36]VG战队纪录片
2014/08/21 DOTA
python单链表实现代码实例
2013/11/21 Python
Python中用PIL库批量给图片加上序号的教程
2015/05/06 Python
python中pandas.DataFrame的简单操作方法(创建、索引、增添与删除)
2017/03/12 Python
在Python中实现替换字符串中的子串的示例
2018/10/31 Python
django基于存储在前端的token用户认证解析
2019/08/06 Python
Django中create和save方法的不同
2019/08/13 Python
在django模板中实现超链接配置
2019/08/21 Python
python 计算方位角实例(根据两点的坐标计算)
2020/01/17 Python
解决pycharm中导入自己写的.py函数出错问题
2020/02/12 Python
使用python实现飞机大战游戏
2020/03/23 Python
贝佳斯官方网站:Borghese
2020/05/08 全球购物
大学军训感想
2014/02/12 职场文书
班主任班级寄语大全
2014/04/04 职场文书
法人委托书范本
2014/04/04 职场文书
文体活动总结范文
2014/05/05 职场文书
土木工程求职信
2014/05/29 职场文书
团干部培训方案
2014/06/03 职场文书
实习介绍信范文
2015/05/05 职场文书
详解Python中的进程和线程
2021/06/23 Python