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 相关文章推荐
11个并不被常用但对开发非常有帮助的Python库
Mar 31 Python
在Django的上下文中设置变量的方法
Jul 20 Python
Python2实现的LED大数字显示效果示例
Sep 04 Python
Python3 queue队列模块详细介绍
Jan 05 Python
python生成tensorflow输入输出的图像格式的方法
Feb 12 Python
数据清洗--DataFrame中的空值处理方法
Jul 03 Python
python中如何实现将数据分成训练集与测试集的方法
Sep 13 Python
Python 复平面绘图实例
Nov 21 Python
python3实现在二叉树中找出和为某一值的所有路径(推荐)
Dec 26 Python
python基于property()函数定义属性
Jan 22 Python
Pytest参数化parametrize使用代码实例
Feb 22 Python
python 在右键菜单中加入复制目标文件的有效存放路径(单斜杠或者双反斜杠)
Apr 08 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 函数中使用static的说明
2012/06/01 PHP
经典的解除许多网站无法复制文字的绝招
2006/12/31 Javascript
关于innerHTML后丢失动态绑定的EVENT问题解决方法
2013/05/19 Javascript
js实现右下角提示框的方法
2015/02/03 Javascript
js光标定位文本框回车表单提交问题的解决方法
2015/05/11 Javascript
jQuery 常用代码集锦(必看篇)
2016/05/16 Javascript
JavaScript对象数组排序实例方法浅析
2016/06/15 Javascript
jQuery实现导航高亮的方法【附demo源码下载】
2016/11/09 Javascript
canvas雪花效果核心代码分享
2017/02/19 Javascript
vue2.0嵌套路由实现豆瓣电影分页功能(附demo)
2017/03/13 Javascript
Javascript中 toFixed四舍六入方法
2017/08/21 Javascript
使用react-router4.0实现重定向和404功能的方法
2017/08/28 Javascript
Vue.js中 v-model 指令的修饰符详解
2018/12/03 Javascript
使用Vue实现移动端左滑删除效果附源码
2019/05/16 Javascript
Vue.directive 实现元素scroll逻辑复用
2019/11/29 Javascript
[54:53]2014 DOTA2国际邀请赛中国区预选赛 LGD-GAMING VS CIS 第二场
2014/05/23 DOTA
Python下线程之间的共享和释放示例
2015/05/04 Python
CentOS中使用virtualenv搭建python3环境
2015/06/08 Python
Python中将字典转换为列表的方法
2016/09/21 Python
Python Tkinter模块实现时钟功能应用示例
2018/07/23 Python
python使用正则表达式来获取文件名的前缀方法
2018/10/21 Python
通过python实现windows桌面截图代码实例
2020/01/17 Python
Python中lru_cache的使用和实现详解
2021/01/25 Python
美国在线面料商店:Online Fabric Store
2018/07/26 全球购物
类的返射机制中的包及核心类
2016/09/12 面试题
java程序员面试交流
2012/11/29 面试题
《王二小》教学反思
2014/02/27 职场文书
党课培训心得体会
2014/09/02 职场文书
教师师德师风个人整改方案
2014/09/18 职场文书
合同和协议有什么区别?
2014/10/08 职场文书
2014社会治安综合治理工作总结
2014/12/04 职场文书
幼师个人总结范文
2015/02/28 职场文书
介绍信范文大全
2015/05/07 职场文书
男生贾里读书笔记
2015/06/30 职场文书
2019年“我为祖国点赞”演讲稿(3篇)
2019/09/26 职场文书
Python 实现Mac 屏幕截图详解
2021/10/05 Python