日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

python-23:將圖片下載到本地

 217小月月坑 2015-11-19
得到圖片的網(wǎng)址之后我么你怎么將圖片下載到本地呢?
在python中我們使用 urllib 庫(kù)里面的 urllib.urlretrieve() 函數(shù)
又是新函數(shù),還記得上回在使用urllib2.Request() 函數(shù)的時(shí)候因?yàn)閭鲄?shù)時(shí)沒(méi)指定好參數(shù)名,所以運(yùn)行出現(xiàn)了一個(gè)錯(cuò)誤,這回要吸取教訓(xùn),先把函數(shù)原型搞清楚
要弄清出函數(shù)原型,我目前為止用到的有兩種方法:
1. 使用python自帶的help函數(shù)   help(urllib.urlretrieve)
2. 在/usr/lib/python2.7 中找到 python 的庫(kù)文件查看里面的函數(shù)(linux系統(tǒng))

 這是輸出結(jié)果
1. url 是你要傳入的下載鏈接
2. finename 指定了保存本地路徑(如果參數(shù)未指定,urllib會(huì)生成一個(gè)臨時(shí)文件保存數(shù)據(jù))
3. reporthook 是一個(gè)回調(diào)函數(shù),當(dāng)連接上服務(wù)器、以及相應(yīng)的數(shù)據(jù)塊傳輸完畢時(shí)會(huì)觸發(fā)該回調(diào),我們可以利用這個(gè)回調(diào)函數(shù)來(lái)顯示當(dāng)前的下載進(jìn)度
4. data 指 post 到服務(wù)器的數(shù)據(jù)
現(xiàn)在我們暫時(shí)還用不到后面的兩個(gè)參數(shù),所以只需要記住前面兩個(gè)參數(shù)是url,和filename 就行了

下載圖片的源碼很簡(jiǎn)單,為了讓大家更好的理解,我這里直接將圖片網(wǎng)址作為URL來(lái)進(jìn)行下載
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
__author__ = '217小月月坑'

import urllib

url = 'http://gtd./sns_logo/i3/TB1lln8KpXXXXazXFXXwu0bFXXX.png_60x60.jpg'
path = '/home/ym/pics/picture'
# 注意,這里的path寫的是文件名,包括文件的路徑和名字
urllib.urlretrieve(url,path)
下載一張圖片很簡(jiǎn)單吧,現(xiàn)在我們來(lái)試著下載這個(gè)網(wǎng)頁(yè)上的所有圖片,代碼如下

#!/uer/bin/env python
# -*- coding: UTF-8 -*-
__author__ = '217小月月坑'
'''
將網(wǎng)頁(yè)上的圖片下載到本地
'''

import urllib
import urllib2
import re

url = 'http://product.yesky.com/more/506001_31372_photograph_1.shtml'
user_agent = 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:40.0) Gecko/20100101 Firefox/40.0'
headers = {'User-Agent':user_agent}
i = 0
try:
request = urllib2.Request(url,headers=headers)
response = urllib2.urlopen(request)
conents = response.read().decode("gbk")
# 使用RE獲取圖片的網(wǎng)址
pattern = re.compile(r'<img src="(.*?)".*?',re.S)
# 返回包含圖片網(wǎng)址的列表
items = re.findall(pattern,conents)
for item in items:
# 設(shè)置圖片的路徑和名字
path = r'/home/ym/pics/'+str(i)
i+=1
# 下載圖片
urllib.urlretrieve(item,path)
print "圖片"+path+"下載完成!"
except urllib2.URLError,e:
if hasattr(e,"code"):
print e.code
if hasattr(e,"reason"):
print e.reason


輸出的結(jié)果:
 
 
 
 
 
 
 
 



    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多