三種 Python 下載圖片的方式分享

大家好,今天給大家分享一個(gè)使用 Python 下載圖片的幾個(gè)方法杜秸。

也許放仗,平常我們下載一張圖片,直接右擊保存就可以了撬碟,可大家有沒有想過诞挨,如果我們要下載 10000 張圖片呢?可能代碼解決就非常 cool 了呢蛤。廢話少說惶傻,直接開擼。

方法一

from urllib.request import urlretrieve

# 圖片的地址
img_url = 'http://img.mp.itc.cn/upload/20170328/0a4a0b04a20d48faab1a58d920ea0704_th.jpeg'
# 兩個(gè)參數(shù)其障,一個(gè)是圖片地址银室;一個(gè)是圖片名
urlretrieve(img_url, 'hmbb01.png')  

這里我用的模塊 urllib,如果你了解 Python2 就會(huì)知道励翼,Python2 模塊中有一個(gè) urllib2 模塊蜈敢,如今,這個(gè)模塊已經(jīng)被合并到了 urllib 中汽抚,叫做 urllib.request 抓狭。這樣,看起來就很簡(jiǎn)潔了造烁,符合 Python 語(yǔ)言的特點(diǎn)否过。

方法二

import requests

img_url = 'http://img.mp.itc.cn/upload/20170328/0a4a0b04a20d48faab1a58d920ea0704_th.jpeg'

t = requests.get(img_url, stream=True)
with open('hmbb02.png', 'wb') as f:
    for chunk in t.iter_content(chunk_size=32):
        f.write(chunk)

這里使用了 requests 模塊里的 stream 參數(shù)午笛,默認(rèn)是 False ,不常用。我在寫文章時(shí)發(fā)現(xiàn)的苗桂,講真药磺,自己也不明白,也去查閱了下資料煤伟。

當(dāng)下載文件過大時(shí)癌佩,建議使用 stream 模式,默認(rèn)是 False便锨,如果我們下載的文件很大驼卖,它會(huì)立即開始下載文件并存放到內(nèi)存中,進(jìn)而會(huì)導(dǎo)致內(nèi)存不足的情況鸿秆。

當(dāng)將 stream 設(shè)置成 True 時(shí),它不會(huì)立即去下載怎囚,當(dāng)你使用 iter_content(iter_lines)遍歷內(nèi)容或者訪問內(nèi)容屬性時(shí)才開始下載卿叽。這樣,就可以按需下載恳守,防止內(nèi)存不足的情況出現(xiàn)考婴。不過,在文件沒有下載之前催烘,還是需要保持連接的沥阱。

使用 stream 模式之后,需要我們手動(dòng)將其關(guān)閉伊群,這里使用 with 語(yǔ)句考杉,優(yōu)雅的處理了這個(gè)問題。

方法三

import requests

img_url = 'http://img.mp.itc.cn/upload/20170328/0a4a0b04a20d48faab1a58d920ea0704_th.jpeg'


# 請(qǐng)求頭舰始,模擬瀏覽器
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.128 Safari/537.36'
}

# timeout 2s得不到結(jié)果崇棠,則超時(shí),不再請(qǐng)求
tem = requests.get(img_url, headers=headers, timeout=2)

with open('hmbb03.png', 'wb') as f:
    f.write(tem.content)

直接用 requests 模塊丸卷,請(qǐng)求圖片地址枕稀,使用 with open 將圖片內(nèi)容固化到本地,注意谜嫉,因?yàn)槭菆D片萎坷,這里使用的是 wb,與 w 是有區(qū)別的沐兰。首先哆档,看字母,r 代表 read僧鲁,是讀文件虐呻; w 代表 write 是寫文件象泵。

w: 打開一個(gè)文件,只用于寫入斟叼,如果文件存在則覆蓋偶惠,如果不存在則新建;
wb: 以二進(jìn)制的形式打開一個(gè)文件朗涩,用于讀寫忽孽,如果文件存在則覆蓋,如果不存在則新建谢床;

當(dāng)然兄一,除了上面介紹的 r,w识腿,還有 a出革,追加(append)的意思,打開一個(gè)文件渡讼,存在則在后面繼續(xù)追加骂束,不會(huì)覆蓋原來的文件,不存在則新建成箫。

本文首發(fā)于微信公眾號(hào)「鈞咕棒」

原文鏈接:三種 Python 下載圖片的方式

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
禁止轉(zhuǎn)載展箱,如需轉(zhuǎn)載請(qǐng)通過簡(jiǎn)信或評(píng)論聯(lián)系作者。
  • 序言:七十年代末蹬昌,一起剝皮案震驚了整個(gè)濱河市混驰,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌皂贩,老刑警劉巖栖榨,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異先紫,居然都是意外死亡治泥,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門遮精,熙熙樓的掌柜王于貴愁眉苦臉地迎上來居夹,“玉大人,你說我怎么就攤上這事本冲∽贾” “怎么了?”我有些...
    開封第一講書人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵檬洞,是天一觀的道長(zhǎng)狸膏。 經(jīng)常有香客問我,道長(zhǎng)添怔,這世上最難降的妖魔是什么湾戳? 我笑而不...
    開封第一講書人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任贤旷,我火速辦了婚禮,結(jié)果婚禮上砾脑,老公的妹妹穿的比我還像新娘幼驶。我一直安慰自己,他們只是感情好韧衣,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開白布盅藻。 她就那樣靜靜地躺著,像睡著了一般畅铭。 火紅的嫁衣襯著肌膚如雪氏淑。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,749評(píng)論 1 289
  • 那天硕噩,我揣著相機(jī)與錄音假残,去河邊找鬼。 笑死炉擅,一個(gè)胖子當(dāng)著我的面吹牛守问,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播坑资,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼穆端!你這毒婦竟也來了袱贮?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤体啰,失蹤者是張志新(化名)和其女友劉穎攒巍,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體荒勇,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡柒莉,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了沽翔。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片兢孝。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖仅偎,靈堂內(nèi)的尸體忽然破棺而出跨蟹,到底是詐尸還是另有隱情,我是刑警寧澤橘沥,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布窗轩,位于F島的核電站,受9級(jí)特大地震影響座咆,放射性物質(zhì)發(fā)生泄漏痢艺。R本人自食惡果不足惜仓洼,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望堤舒。 院中可真熱鬧色建,春花似錦、人聲如沸植酥。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)友驮。三九已至漂羊,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間卸留,已是汗流浹背走越。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留耻瑟,地道東北人旨指。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像喳整,于是被迫代替她去往敵國(guó)和親谆构。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容