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 SqlAlchemy
Feb 12 Python
python常用函数详解
Sep 13 Python
Python 出现错误TypeError: ‘NoneType’ object is not iterable解决办法
Jan 12 Python
使用python实现ANN
Dec 20 Python
pytorch 调整某一维度数据顺序的方法
Dec 08 Python
python3+pyqt5+itchat微信定时发送消息的方法
Feb 20 Python
Python中一些深不见底的“坑”
Jun 12 Python
自定义实现 PyQt5 下拉复选框 ComboCheckBox的完整代码
Mar 30 Python
Keras设定GPU使用内存大小方式(Tensorflow backend)
May 22 Python
解决python pandas读取excel中多个不同sheet表格存在的问题
Jul 14 Python
使用python把xmind转换成excel测试用例的实现代码
Oct 12 Python
Python Flask请求扩展与中间件相关知识总结
Jun 11 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的输出:缓存并压缩动态页面
2013/06/11 PHP
解析thinkphp基本配置 convention.php
2013/06/18 PHP
3个PHP多维数组转为一维数组的方法实例
2014/03/13 PHP
php文件夹的创建与删除方法
2015/01/24 PHP
PHP中使用BigMap实例
2015/03/30 PHP
CI框架源码解读之利用Hook.php文件完成功能扩展的方法
2016/05/18 PHP
Laravel统一错误处理为JSON的方法介绍
2020/10/18 PHP
js实现数组去重、判断数组以及对象中的内容是否相同
2013/11/29 Javascript
jQuery中prev()方法用法实例
2015/01/08 Javascript
ExpressJS入门实例
2015/01/14 Javascript
JavaScript实现基于Cookie的存储类实例
2015/04/10 Javascript
详解JavaScript函数对象
2015/11/15 Javascript
vue-hook-form使用详解
2017/04/07 Javascript
JS实现图片上传多次上传同一张不生效的处理方法
2018/08/06 Javascript
AngularJS 监听变量变化的实现方法
2018/10/09 Javascript
图片文字识别(OCR)插件Ocrad.js教程
2018/11/26 Javascript
微信小程序实现的自定义分享功能示例
2019/02/12 Javascript
小程序实现悬浮搜索框
2019/07/12 Javascript
vscode vue 文件模板的配置方法
2019/07/23 Javascript
layui实现把数据表格时间戳转换为时间格式的例子
2019/09/12 Javascript
js简单实现自动生成表格功能示例
2020/06/02 Javascript
js基于canvas实现时钟组件
2021/02/07 Javascript
在Django的通用视图中处理Context的方法
2015/07/21 Python
Python爬虫DOTA排行榜爬取实例(分享)
2017/06/13 Python
Python内存读写操作示例
2018/07/18 Python
如何实现Django Rest framework版本控制
2019/07/25 Python
Django使用 Bootstrap 样式修改书籍列表过程解析
2019/08/09 Python
python3.7实现云之讯、聚合短信平台的短信发送功能
2019/09/26 Python
Python猫眼电影最近上映的电影票房信息
2020/09/18 Python
英国高街品牌:Miss Selfridge(塞尔弗里奇小姐)
2016/09/21 全球购物
台湾全方位线上课程与职能学习平台:TibaMe
2019/12/04 全球购物
什么是servlet链?
2014/07/13 面试题
主要领导对照检查材料
2014/08/26 职场文书
2015年电话销售工作总结范文
2015/04/20 职场文书
opencv 分类白天与夜景视频的方法
2021/06/05 Python
python获取字符串中的email
2022/03/31 Python