python爬蟲系列之 requests實戰(zhàn):用 requests庫下載網(wǎng)頁和圖片

一、requests獲取網(wǎng)頁

#-*- coding: utf-8 -*
import requests


url = 'http://www.baidu.com'

r = requests.get(url)
r.encoding = r.apparent_encoding

print(r.text)

這個在上節(jié)我們已經(jīng)講過,并不是很難,接下來來點有意思的。

二、requests下載圖片

我們可以利用響應的content屬性來下載圖片,當然也可以下載其他的文件。

首先我們在網(wǎng)上隨便找一張圖片:http://img.netbian.com/file/2018/0127/7acb22d76d5ad9706bbb4251481b2e3b.jpg

#-*- coding: utf-8 -*
import requests


src = 'http://img.netbian.com/file/2018/0127/7acb22d76d5ad9706bbb4251481b2e3b.jpg'

r = requests.get(src)

with open('bizhi.jpg', 'wb') as f:
    f.write(r.content)

print('下載完成') 

這里的 open( filename, mode ) 是 python的內置函數(shù),用于打開一個文件,接受兩個參數(shù) filename和 mode,返回 一個 file對象。

以wb, ab, wb+, ab+, rb+模式打開的 file對象的 write方法能接收二進制數(shù)據(jù)作為參數(shù),所以我們可以通過 write方法將二進制數(shù)據(jù)寫入到 file對象對應的文件中去。

其中 filename是要打開的文件的名稱,mode是打開文件的方式,mode的取值有如下幾種:

模式 描述
r 以只讀方式打開文件。文件的指針將會放在文件的開頭。這是默認模式。
rb 以二進制格式打開一個文件用于只讀。文件指針將會放在文件的開頭。這是默認模式。
r+ 打開一個文件用于讀寫。文件指針將會放在文件的開頭。
rb+ 以二進制格式打開一個文件用于讀寫。文件指針將會放在文件的開頭。
w 打開一個文件只用于寫入。如果該文件已存在則打開文件,并從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創(chuàng)建新文件。
wb 以二進制格式打開一個文件只用于寫入。如果該文件已存在則打開文件,并從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創(chuàng)建新文件。
w+ 打開一個文件用于讀寫。如果該文件已存在則打開文件,并從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創(chuàng)建新文件。
wb+ 以二進制格式打開一個文件用于讀寫。如果該文件已存在則打開文件,并從開頭開始編輯,即原有內容會被刪除。如果該文件不存在,創(chuàng)建新文件。
a 打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之后。如果該文件不存在,創(chuàng)建新文件進行寫入。
ab 以二進制格式打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結尾。也就是說,新的內容將會被寫入到已有內容之后。如果該文件不存在,創(chuàng)建新文件進行寫入。
a+ 打開一個文件用于讀寫。如果該文件已存在,文件指針將會放在文件的結尾。文件打開時會是追加模式。如果該文件不存在,創(chuàng)建新文件用于讀寫。
ab+ 以二進制格式打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結尾。如果該文件不存在,創(chuàng)建新文件用于讀寫。

理論上只要有文件的真實地址,所有文件都可以通過 requests來下載,當然也包括小電影§( ̄▽ ̄)§,和下載圖片類似:

#-*- coding: utf-8 -*
import requests


src = 'http://qrcode-1254412656.cosgz.myqcloud.com/sfdgfdyhtbcnhgjgm.mp4'

r = requests.get(src)

with open('movie.mp4', 'wb') as f:
    f.write(r.content)

print('下載完成')

總結:

要下載一個文件

需要文件的真實地址

用 requests獲取文件

用 open函數(shù)將 返回的 r.content寫入文件,模式選擇 wb

記住后綴名不能錯

有問題歡迎評論

上一篇:python爬蟲系列之 requests: 讓 HTTP 服務人類

下一篇:python爬蟲系列之 xpath:html解析神器

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容