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 28 Python
利用python发送和接收邮件
Sep 27 Python
Python使用pickle模块存储数据报错解决示例代码
Jan 26 Python
Python日期时间对象转换为字符串的实例
Jun 22 Python
在django中实现页面倒数几秒后自动跳转的例子
Aug 16 Python
python+jinja2实现接口数据批量生成工具
Aug 28 Python
基于python3监控服务器状态进行邮件报警
Oct 19 Python
Python OpenCV图像指定区域裁剪的实现
Oct 30 Python
Django2 连接MySQL及model测试实例分析
Dec 10 Python
Python实现清理微信僵尸粉功能示例【基于itchat模块】
May 29 Python
python调用有道智云API实现文件批量翻译
Oct 10 Python
解决Jupyter-notebook不弹出默认浏览器的问题
Mar 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获取当前日期所在星期(月份)的开始日期与结束日期(实现代码)
2013/06/18 PHP
PHP实现适用于自定义的验证码类
2016/06/15 PHP
Kibo 用于处理键盘事件的Javascript工具库
2011/10/28 Javascript
jquery创建一个新的节点对象(自定义结构/内容)的好方法
2013/01/21 Javascript
jQuery选择器中含有空格的使用示例及注意事项
2013/08/25 Javascript
jQuery操作表单常用控件方法小结
2015/03/23 Javascript
JQuery实现简单的图片滑动切换特效
2015/11/22 Javascript
JS禁用页面上所有控件的实现方法(附demo源码下载)
2015/12/17 Javascript
jquery遍历函数siblings()用法实例
2015/12/24 Javascript
Webpack实战加载SVG的方法
2017/12/26 Javascript
Vue 父子组件的数据传递、修改和更新方法
2018/03/01 Javascript
微信小程序实现通过js操作wxml的wxss属性示例
2018/12/06 Javascript
详解Vue2.5+迁移至Typescript指南
2019/08/01 Javascript
解决layui 表单元素radio不显示渲染的问题
2019/09/04 Javascript
微信小程序JS加载esmap地图的实例详解
2019/09/04 Javascript
如何利用nodejs自动定时发送邮件提醒(超实用)
2020/12/01 NodeJs
[16:04]DOTA2海涛带你玩炸弹 9月5日更新内容详解
2014/09/05 DOTA
分析Python编程时利用wxPython来支持多线程的方法
2015/04/07 Python
python append、extend与insert的区别
2016/10/13 Python
Python批量查询域名是否被注册过
2017/06/21 Python
基于Python3 逗号代码 和 字符图网格(详谈)
2017/06/22 Python
用Pelican搭建一个极简静态博客系统过程解析
2019/08/22 Python
Python reversed函数及使用方法解析
2020/03/17 Python
python 制作python包,封装成可用模块教程
2020/07/13 Python
Python使用socket模块实现简单tcp通信
2020/08/18 Python
HTML5 背景的显示区域实现
2020/07/09 HTML / CSS
中国排名第一的外贸销售网站:LightInTheBox.com(兰亭集势)
2016/10/28 全球购物
爱他美官方海外旗舰店:Aptamil奶粉
2017/12/22 全球购物
Luxplus荷兰:以会员价购买美容产品等,独家优惠
2019/08/30 全球购物
PHP引擎php.ini参数优化深入讲解
2021/03/24 PHP
教育科学研究生自荐信
2013/10/09 职场文书
出国留学自荐信
2013/10/25 职场文书
行政管理专业求职信
2014/07/06 职场文书
领导班子整改方案
2014/10/25 职场文书
正能量励志演讲稿三分钟(范文)
2019/07/11 职场文书
css样式important规则的正确使用方式
2022/06/10 HTML / CSS