亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python實現(xiàn)下載指定網(wǎng)址所有圖片的方法

 更新時間:2015年08月08日 12:25:37   作者:皮蛋  
這篇文章主要介紹了python實現(xiàn)下載指定網(wǎng)址所有圖片的方法,涉及Python針對頁面的讀取、遍歷及文件操作的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下

本文實例講述了python實現(xiàn)下載指定網(wǎng)址所有圖片的方法。分享給大家供大家參考。具體實現(xiàn)方法如下:

#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))

運行結(jié)果如下:

num of download pictures is 19

希望本文所述對大家的Python程序設(shè)計有所幫助。

相關(guān)文章

  • python計算最小優(yōu)先級隊列代碼分享

    python計算最小優(yōu)先級隊列代碼分享

    python計算最小優(yōu)先級隊列代碼分享,大家參考使用吧
    2013-12-12
  • Python使用logging結(jié)合decorator模式實現(xiàn)優(yōu)化日志輸出的方法

    Python使用logging結(jié)合decorator模式實現(xiàn)優(yōu)化日志輸出的方法

    這篇文章主要介紹了Python使用logging結(jié)合decorator模式實現(xiàn)優(yōu)化日志輸出的方法,實例分析了Python使用logging模塊操作日志的相關(guān)技巧,需要的朋友可以參考下
    2016-04-04
  • 分析如何在Python中解析和修改XML

    分析如何在Python中解析和修改XML

    我們經(jīng)常需要解析用不同語言編寫的數(shù)據(jù)。Python提供了許多庫來解析或拆分用其他語言編寫的數(shù)據(jù)。在此Python XML解析器教程中,您將學(xué)習(xí)如何使用Python解析XML
    2021-06-06
  • Python生成器next方法和send方法區(qū)別詳解

    Python生成器next方法和send方法區(qū)別詳解

    這篇文章主要介紹了Python生成器next方法和send方法區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05
  • 最新評論