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实现大文件排序的方法
Jul 10 Python
python 阶乘累加和的实例
Feb 01 Python
【python】matplotlib动态显示详解
Apr 11 Python
Python检测数据类型的方法总结
May 20 Python
python与字符编码问题
May 24 Python
Python3 集合set入门基础
Feb 10 Python
Tensorflow训练MNIST手写数字识别模型
Feb 13 Python
Python 之 Json序列化嵌套类方式
Feb 27 Python
Python 抓取数据存储到Redis中的操作
Jul 16 Python
calendar在python3时间中常用函数举例详解
Nov 18 Python
Python使用sql语句对mysql数据库多条件模糊查询的思路详解
Apr 12 Python
python如何正确使用yield
May 21 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简单系统查询模块代码打包下载
2008/06/07 PHP
超级好用的一个php上传图片类(随机名,缩略图,加水印)
2010/06/30 PHP
详解PHP中strlen和mb_strlen函数的区别
2014/03/07 PHP
php生成验证码函数
2015/10/20 PHP
老生常谈PHP面向对象之标识映射
2017/06/21 PHP
javascript 处理事件绑定的一些兼容写法
2009/12/24 Javascript
JS实现点击链接取消跳转效果的方法
2014/01/24 Javascript
js四舍五入数学函数round使用实例
2014/05/09 Javascript
JQuery 使用attr方法实现下拉列表选中
2014/10/13 Javascript
Javascript中With语句用法实例
2015/05/14 Javascript
JavaScript中字符串(string)转json的2种方法
2015/06/25 Javascript
JS实现图文并茂的tab选项卡效果示例【附demo源码下载】
2016/09/21 Javascript
原生javascript实现文件异步上传的实例讲解
2017/10/26 Javascript
JS简单添加元素新节点的方法示例
2018/02/10 Javascript
如何通过setTimeout理解JS运行机制详解
2019/03/23 Javascript
微信小程序使用车牌号输入法的示例代码
2019/08/20 Javascript
Vue仿微信app页面跳转动画效果
2019/08/21 Javascript
layui 数据表格+分页+搜索+checkbox+缓存选中项数据的方法
2019/09/21 Javascript
JS如何寻找数组中心索引过程解析
2020/06/01 Javascript
Python爬虫DOTA排行榜爬取实例(分享)
2017/06/13 Python
Python+selenium 获取一组元素属性值的实例
2018/06/22 Python
详解python while 函数及while和for的区别
2018/09/07 Python
搞定这套Python爬虫面试题(面试会so easy)
2019/04/03 Python
python函数enumerate,operator和Counter使用技巧实例小结
2020/02/22 Python
Python sorted对list和dict排序
2020/06/09 Python
canvas里面如何基于随机点绘制一个多边形的方法
2018/06/13 HTML / CSS
大学毕业生通用自荐信范文
2013/10/31 职场文书
大学同学十年聚会感言
2014/02/21 职场文书
春节慰问信范文
2015/02/15 职场文书
求职自荐信范文(优秀篇)
2015/03/27 职场文书
幼儿园开学家长寄语(2015秋季)
2015/05/27 职场文书
2016年师德学习心得体会
2016/01/12 职场文书
2019年暑期法院实习报告
2019/12/18 职场文书
Windows下使用Nginx+Tomcat做负载均衡的完整步骤
2021/03/31 Servers
Python实战之实现简易的学生选课系统
2021/05/25 Python
python脚本框架webpy模板赋值实现
2021/11/20 Python