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来开发Markdown脚本扩展的实例分享
Mar 04 Python
[原创]pip和pygal的安装实例教程
Dec 07 Python
python实现生命游戏的示例代码(Game of Life)
Jan 24 Python
Python进阶之尾递归的用法实例
Jan 31 Python
python3+PyQt5实现支持多线程的页面索引器应用程序
Apr 20 Python
python实现字符串中字符分类及个数统计
Sep 28 Python
python读取图片的方式,以及将图片以三维数组的形式输出方法
Jul 03 Python
python爬虫爬取幽默笑话网站
Oct 24 Python
python基于plotly实现画饼状图代码实例
Dec 16 Python
python pymysql链接数据库查询结果转为Dataframe实例
Jun 05 Python
详细分析Python垃圾回收机制
Jul 01 Python
Python图片验证码降噪和8邻域降噪
Aug 30 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缓冲 output_buffering和ob_start使用介绍
2014/01/30 PHP
PHP中常见的缓存技术实例分析
2015/09/23 PHP
教你php如何实现验证码
2016/01/20 PHP
PHP QRCODE生成彩色二维码的方法
2016/05/19 PHP
php版微信小店API二次开发及使用示例
2016/11/12 PHP
php+mysql+jquery实现简易的检索自动补全提示功能
2017/04/15 PHP
jQuery的一些注意
2006/12/06 Javascript
用JavaScript获取网页中的js、css、Flash等文件
2006/12/20 Javascript
js隐藏与显示回到顶部按钮及window.onscroll事件应用
2013/01/25 Javascript
js数组的操作详解
2013/03/27 Javascript
JavaScript中字符串分割函数split用法实例
2015/04/07 Javascript
JavaScript操作HTML元素和样式的方法详解
2015/10/21 Javascript
javascript回到顶部特效
2016/07/30 Javascript
微信小程序  网络请求API详解
2016/10/25 Javascript
vue脚手架vue-cli的学习使用教程
2017/06/06 Javascript
vue修改对象的属性值后页面不重新渲染的实例
2018/08/09 Javascript
用Object.prototype.toString.call(obj)检测对象类型原因分析
2018/10/11 Javascript
ES5新增数组的实现方法
2020/05/12 Javascript
Vue基于iview table展示图片实现点击放大
2020/08/05 Javascript
python实现多张图片拼接成大图
2019/01/15 Python
python3爬虫学习之数据存储txt的案例详解
2019/04/24 Python
Python3监控疫情的完整代码
2020/02/20 Python
Python3批量创建Crowd用户并分配组
2020/05/20 Python
Python基于wordcloud及jieba实现中国地图词云图
2020/06/09 Python
解决keras加入lambda层时shape的问题
2020/06/11 Python
用pandas划分数据集实现训练集和测试集
2020/07/20 Python
CSS3样式linear-gradient的使用实例
2017/01/16 HTML / CSS
日本最新流行服饰网购:Nissen
2016/07/24 全球购物
Madewell美德威尔美国官网:美国休闲服饰品牌
2016/11/25 全球购物
经贸日语毕业生自荐信
2013/11/03 职场文书
业务部经理岗位职责
2014/01/04 职场文书
五十岁生日宴会答谢词
2014/01/15 职场文书
大学学习生活感言
2014/01/18 职场文书
数控技校生自我鉴定
2014/03/02 职场文书
自我鉴定标准格式
2014/03/19 职场文书
酒后驾车标语
2014/06/30 职场文书