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)文章
對網(wǎng)站內(nèi)嵌gradio應(yīng)用的輸入輸出做審核實現(xiàn)詳解
這篇文章主要為大家介紹了對網(wǎng)站內(nèi)嵌gradio應(yīng)用的輸入輸出做審核實現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04Python利用heapq實現(xiàn)一個優(yōu)先級隊列的方法
今天小編就為大家分享一篇Python利用heapq實現(xiàn)一個優(yōu)先級隊列的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-02-02

Python使用logging結(jié)合decorator模式實現(xiàn)優(yōu)化日志輸出的方法
這篇文章主要介紹了Python使用logging結(jié)合decorator模式實現(xiàn)優(yōu)化日志輸出的方法,實例分析了Python使用logging模塊操作日志的相關(guān)技巧,需要的朋友可以參考下
2016-04-04 
Python生成器next方法和send方法區(qū)別詳解
這篇文章主要介紹了Python生成器next方法和send方法區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
2020-05-05