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正则表达式介绍
Aug 06 Python
Python pass 语句使用示例
Mar 11 Python
python3写爬取B站视频弹幕功能
Dec 22 Python
Python pyinotify日志监控系统处理日志的方法
Mar 08 Python
pandas 取出表中一列数据所有的值并转换为array类型的方法
Apr 11 Python
使用opencv将视频帧转成图片输出
Dec 10 Python
tensorflow实现tensor中满足某一条件的数值取出组成新的tensor
Jan 04 Python
python生成大写32位uuid代码
Mar 03 Python
Python基于stuck实现scoket文件传输
Apr 02 Python
Python 字符串池化的前提
Jul 03 Python
python中delattr删除对象方法的代码分析
Dec 15 Python
Python 用户输入和while循环的操作
May 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
NT IIS下用ODBC连接数据库
2006/10/09 PHP
Fine Uploader文件上传组件应用介绍
2013/01/06 PHP
JS判断移动端访问设备并加载对应CSS样式
2014/06/13 Javascript
jQuery截取指定长度字符串代码
2014/08/21 Javascript
require.js的用法详解
2015/10/20 Javascript
javascript实现五星评分功能
2015/11/10 Javascript
基于Bootstrap重置输入框内容按钮插件
2016/05/12 Javascript
JS日期对象简单操作(获取当前年份、星期、时间)
2016/10/26 Javascript
详谈jQuery Ajax(load,post,get,ajax)的用法
2017/03/02 Javascript
Angular HMR(热模块替换)功能实现方法
2018/04/04 Javascript
微信小程序仿通讯录功能
2020/04/09 Javascript
从源码角度来回答keep-alive组件的缓存原理
2021/01/18 Javascript
Python开发之快速搭建自动回复微信公众号功能
2016/04/22 Python
Python实现统计文本文件字数的方法
2017/05/05 Python
python实现求最长回文子串长度
2018/01/22 Python
pandas 取出表中一列数据所有的值并转换为array类型的方法
2018/04/11 Python
使用numpy和PIL进行简单的图像处理方法
2018/07/02 Python
Python中的单行、多行、中文注释方法
2018/07/19 Python
使用Django和Postgres进行全文搜索的实例代码
2020/02/13 Python
在Python中通过threshold创建mask方式
2020/02/19 Python
python virtualenv虚拟环境配置与使用教程详解
2020/07/13 Python
Python如何输出警告信息
2020/07/30 Python
详解BeautifulSoup获取特定标签下内容的方法
2020/12/07 Python
python xlsxwriter模块的使用
2020/12/24 Python
浅谈基于Canvas的手绘风格图形库Rough.js
2018/03/19 HTML / CSS
Charlotte Tilbury澳大利亚官网:英国美妆品牌
2018/10/05 全球购物
英国排名第一的冲浪店:Ann’s Cottage
2020/06/21 全球购物
入党积极分子思想汇报
2014/01/02 职场文书
人力资源专员岗位职责
2014/01/30 职场文书
高中同学会活动方案
2014/08/14 职场文书
三严三实对照检查材料思想汇报
2014/09/28 职场文书
离婚案件上诉状
2015/05/23 职场文书
幼儿园庆六一主持词
2015/06/30 职场文书
校园广播稿范文
2015/08/19 职场文书
DjangoRestFramework 使用 simpleJWT 登陆认证完整记录
2021/06/22 Python
Mysql Innodb存储引擎之索引与算法
2022/02/15 MySQL