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 10 Python
Python实现的破解字符串找茬游戏算法示例
Sep 25 Python
Python环境搭建之OpenCV的步骤方法
Oct 20 Python
Python画柱状统计图操作示例【基于matplotlib库】
Jul 04 Python
python学生信息管理系统(完整版)
Apr 05 Python
Windows下安装Scrapy
Oct 17 Python
python 3.3 下载固定链接文件并保存的方法
Dec 18 Python
python找出列表中大于某个阈值的数据段示例
Nov 24 Python
Python3.7黑帽编程之病毒篇(基础篇)
Feb 04 Python
Python ckeditor富文本编辑器代码实例解析
Jun 22 Python
Python执行时间的几种计算方法
Jul 31 Python
Python3.8官网文档之类的基础语法阅读
Sep 04 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
php4的session功能评述(一)
2006/10/09 PHP
Linux下ZendOptimizer的安装与配置方法
2007/04/12 PHP
php csv操作类代码
2009/12/14 PHP
php导出中文内容excel文件类实例
2015/07/06 PHP
php读取XML的常见方法实例总结
2017/04/25 PHP
Laravel接收前端ajax传来的数据的实例代码
2017/07/20 PHP
使用XHProf查找PHP性能瓶颈的实例
2017/12/13 PHP
JQuery 常用方法基础教程
2009/02/06 Javascript
使用jQuery Ajax功能时需要注意的一个问题(内存溢出)
2012/05/30 Javascript
JavaScript DOM 编程艺术(第2版)读书笔记(JavaScript的最佳实践)
2013/10/01 Javascript
js实现禁止中文输入的方法
2015/01/14 Javascript
JS建造者模式基本用法实例分析
2015/06/30 Javascript
JavaScript数组去重的3种方法和代码实例
2015/07/01 Javascript
javascript图片预加载实例分析
2015/07/16 Javascript
AngularJS利用Controller完成URL跳转
2016/08/09 Javascript
Centos7 中 Node.js安装简单方法
2016/11/02 Javascript
JS实现的图片预览插件与用法示例【不上传图片】
2016/11/25 Javascript
React中ES5与ES6写法的区别总结
2017/04/21 Javascript
validationEngine 表单验证插件使用实例代码
2017/06/15 Javascript
React Native基础入门之调试React Native应用的一小步
2018/07/02 Javascript
React Hooks的深入理解与使用
2018/11/12 Javascript
在Vue项目中引入JQuery-ui插件的讲解
2019/01/27 jQuery
vue实现放大镜效果
2020/09/17 Javascript
[22:20]初生之犊-TI4第5名LGD战队纪录片
2014/08/13 DOTA
Python实现KNN邻近算法
2021/01/28 Python
python opencv 图像尺寸变换方法
2018/04/02 Python
Django实现全文检索的方法(支持中文)
2018/05/14 Python
Django之Mode的外键自关联和引用未定义的Model方法
2018/12/15 Python
详解如何用TensorFlow训练和识别/分类自定义图片
2019/08/05 Python
Trina Turk官网:美国时装和泳装品牌
2018/06/10 全球购物
应聘收银员个人的求职信
2013/11/30 职场文书
安全生产检讨书
2014/01/21 职场文书
阳光体育活动总结
2014/04/30 职场文书
优秀毕业生就业推荐信
2014/05/22 职场文书
2016年度师德标兵先进事迹材料
2016/02/26 职场文书
golang 实用库gotable的具体使用
2021/07/01 Golang