python实现下载指定网址所有图片的方法


Posted in Python onAugust 08, 2015

本文实例讲述了python实现下载指定网址所有图片的方法。分享给大家供大家参考。具体实现方法如下:

#coding=utf-8
#download pictures of the url
#useage: python downpicture.py www.baidu.com
import os
import sys
from html.parser import HTMLParser
from urllib.request import urlopen
from urllib.parse import urlparse
def getpicname(path):
  '''  retrive filename of url    '''
  if os.path.splitext(path)[1] == '':
    return None
  pr=urlparse(path)
  path='http://'+pr[1]+pr[2]
  return os.path.split(path)[1]
def saveimgto(path, urls):
  '''
  save img of url to local path
  '''
  if not os.path.isdir(path):
    print('path is invalid')
    sys.exit()
  else:
    for url in urls:
      of=open(os.path.join(path, getpicname(url)), 'w+b')
      q=urlopen(url)
      of.write(q.read())
      q.close()
      of.close()
class myhtmlparser(HTMLParser):
  '''put all src of img into urls'''
  def __init__(self):
    HTMLParser.__init__(self)
    self.urls=list()
    self.num=0
  def handle_starttag(self, tag, attr):
    if tag.lower() == 'img':
      srcs=[u[1] for u in attr if u[0].lower() == 'src']
      self.urls.extend(srcs)
      self.num = self.num+1
if __name__ == '__main__':
  url=sys.argv[1]
  if not url.startswith('http://'):
    url='http://' + sys.argv[1]
  parseresult=urlparse(url)
  domain='http://' + parseresult[1]
  q=urlopen(url)
  content=q.read().decode('utf-8', 'ignore')
  q.close()
  myparser=myhtmlparser()
  myparser.feed(content)
  for u in myparser.urls:
    if (u.startswith('//')):
      myparser.urls[myparser.urls.index(u)]= 'http:'+u
    elif u.startswith('/'):
      myparser.urls[myparser.urls.index(u)]= domain+u
  saveimgto(r'D:\python\song', myparser.urls)
  print('num of download pictures is {}'.format(myparser.num))

运行结果如下:

num of download pictures is 19

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
用Python输出一个杨辉三角的例子
Jun 13 Python
Python的爬虫框架scrapy用21行代码写一个爬虫
Apr 24 Python
python中matplotlib的颜色及线条控制的示例
Mar 16 Python
Pandas 数据框增、删、改、查、去重、抽样基本操作方法
Apr 12 Python
从DataFrame中提取出Series或DataFrame对象的方法
Nov 10 Python
对python调用RPC接口的实例详解
Jan 03 Python
利用anaconda保证64位和32位的python共存
Mar 09 Python
10分钟教你用python动画演示深度优先算法搜寻逃出迷宫的路径
Aug 12 Python
python输出带颜色字体实例方法
Sep 01 Python
Python Django2.0集成Celery4.1教程
Nov 19 Python
django框架auth模块用法实例详解
Dec 10 Python
Python包,__init__.py功能与用法分析
Jan 07 Python
Python实现多线程抓取妹子图
Aug 08 #Python
通过Python来使用七牛云存储的方法详解
Aug 07 #Python
Python爬虫框架Scrapy实战之批量抓取招聘信息
Aug 07 #Python
深入理解Python中命名空间的查找规则LEGB
Aug 06 #Python
举例详解Python中yield生成器的用法
Aug 05 #Python
Python中return语句用法实例分析
Aug 04 #Python
python函数形参用法实例分析
Aug 04 #Python
You might like
PHP 基本语法格式
2009/12/15 PHP
CI框架文件上传类及图像处理类用法分析
2016/05/18 PHP
ThinkPHP5与单元测试PHPUnit使用详解
2020/02/23 PHP
php+js实现的拖动滑块验证码验证表单操作示例【附源码下载】
2020/05/27 PHP
再次更新!MSClass (Class Of Marquee Scroll通用不间断滚动JS封装类 Ver 1.6)
2007/02/05 Javascript
JS 中document.URL 和 windows.location.href 的区别
2009/11/11 Javascript
JavaScript的strict模式与with关键字介绍
2014/02/08 Javascript
jquery获取颜色在ie和ff下的区别示例介绍
2014/03/28 Javascript
深入解读JavaScript中的Hoisting机制
2015/08/12 Javascript
基于jQuery实现复选框是否选中进行答题提示
2015/12/10 Javascript
jquery.qtip提示信息插件用法简单实例
2016/06/17 Javascript
AngularJs 动态加载模块和依赖
2016/09/15 Javascript
自学实现angularjs依赖注入
2016/12/20 Javascript
JavaScript实现瀑布流以及加载效果
2017/02/11 Javascript
单行 JS 实现移动端金钱格式的输入规则
2017/05/22 Javascript
基于 Vue.js 之 iView UI 框架非工程化实践记录(推荐)
2017/11/21 Javascript
css配合JavaScript实现tab标签切换效果
2018/10/11 Javascript
微信小程序request请求封装,验签代码实例
2019/12/04 Javascript
Javascript Worker子线程代码实例
2020/02/20 Javascript
[01:06:12]VP vs NIP 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
Python的几个高级语法概念浅析(lambda表达式闭包装饰器)
2016/05/28 Python
Python爬虫框架scrapy实现downloader_middleware设置proxy代理功能示例
2018/08/04 Python
使用Python调取任意数字资产钱包余额功能
2019/08/15 Python
python pillow模块使用方法详解
2019/08/30 Python
Python在终端通过pip安装好包以后在Pycharm中依然无法使用的问题(三种解决方案)
2020/03/10 Python
英国最大的运动营养公司之一:LA Muscle
2018/07/02 全球购物
办公室前台的岗位职责
2013/12/20 职场文书
理工类毕业自我鉴定
2014/02/20 职场文书
乡镇总工会学雷锋活动总结
2014/03/01 职场文书
小学优秀教育工作者事迹材料
2014/05/09 职场文书
给校长的建议书600字
2014/05/15 职场文书
专业见习报告范文
2014/11/03 职场文书
小班下学期幼儿评语
2014/12/30 职场文书
2015年社区服务活动总结
2015/03/25 职场文书
范文之农村基层党建工作报告
2019/10/24 职场文书
Python Pandas数据分析之iloc和loc的用法详解
2021/11/11 Python