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 Sleep休眠函数使用简单实例
Feb 02 Python
python使用正则表达式匹配字符串开头并打印示例
Jan 11 Python
python监控键盘输入实例代码
Feb 09 Python
pandas多级分组实现排序的方法
Apr 20 Python
python实现ID3决策树算法
Aug 29 Python
Python3利用print输出带颜色的彩色字体示例代码
Apr 08 Python
python3射线法判断点是否在多边形内
Jun 28 Python
六种酷炫Python运行进度条效果的实现代码
Jul 17 Python
如何利用Python给自己的头像加一个小国旗(小月饼)
Oct 02 Python
python 提高开发效率的5个小技巧
Oct 19 Python
使用Python判断一个文件是否被占用的方法教程
Dec 16 Python
LyScript实现绕过反调试保护的示例详解
Aug 14 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实现表单多按钮提交action的处理方法
2015/10/24 PHP
Laravel重写用户登录简单示例
2016/10/08 PHP
js 禁用只读文本框获得焦点时的退格键
2010/04/25 Javascript
Javascript实现的鼠标经过时播放声音
2010/05/18 Javascript
js常用代码段整理
2011/11/30 Javascript
js判断运行jsp页面的浏览器类型以及版本示例
2013/10/30 Javascript
解析Javascript中难以理解的11个问题
2013/12/09 Javascript
利用JS判断用户是否上网(连接网络)
2013/12/23 Javascript
jQuery中animate的几种用法与注意事项
2016/12/12 Javascript
Angular.js中下拉框实现渲染html的方法
2017/06/18 Javascript
JavaScript实现的反序列化json字符串操作示例
2018/07/18 Javascript
layer弹窗在键盘按回车将反复刷新的实现方法
2019/09/25 Javascript
教你如何在Django 1.6中正确使用 Signal
2014/06/22 Python
Flask框架学习笔记(一)安装篇(windows安装与centos安装)
2014/06/25 Python
Python中死锁的形成示例及死锁情况的防止
2016/06/14 Python
Python实现全角半角字符互转的方法
2016/11/28 Python
python操作mysql数据库
2017/03/05 Python
Python Cookie 读取和保存方法
2018/12/28 Python
在Python运行时动态查看进程内部信息的方法
2019/02/22 Python
在notepad++中实现直接运行python代码
2019/12/18 Python
python+appium+yaml移动端自动化测试框架实现详解
2020/11/24 Python
浅析Python的命名空间与作用域
2020/11/25 Python
python实现ping命令小程序
2020/12/28 Python
Python 获取异常(Exception)信息的几种方法
2020/12/29 Python
python链表类中获取元素实例方法
2021/02/23 Python
详解css3 flex弹性盒自动铺满写法
2020/09/17 HTML / CSS
英国独特的时尚和生活方式品牌:JOY
2018/03/17 全球购物
澳大利亚领先的运动鞋商店:Hype DC
2018/03/31 全球购物
Anya Hindmarch官网:奢侈设计师手袋及配饰
2018/11/15 全球购物
Puma印度官网:德国运动品牌
2019/10/06 全球购物
考博自荐信
2013/10/25 职场文书
计算机科学技术自荐信
2014/06/12 职场文书
伦敦奥运会的口号
2014/06/21 职场文书
护士长2015年终工作总结
2015/04/24 职场文书
创业计划书之旅游网站
2019/09/06 职场文书
Python爬取英雄联盟MSI直播间弹幕并生成词云图
2021/06/01 Python