使用urllib庫(kù)的urlretrieve()方法下載網(wǎng)絡(luò)文件到本地的方法
概述
見源碼
源碼
# !/usr/bin/env python
# -*- coding:utf-8 -*-
"""
圖片(文件)下載,核心方法是 urllib.urlrequest 模塊的 urlretrieve()方法
urlretrieve(url, filename=None, reporthook=None, data=None)
url: 文件url
filename: 保存到本地時(shí),使用的文件(路徑)名稱
reporthook: 文件傳輸時(shí)的回調(diào)函數(shù)
data: post提交到服務(wù)器的數(shù)據(jù)
該方法返回一個(gè)二元元組("本地文件路徑",<http.client.HTTPMessage對(duì)象>)
"""
import requests
import urllib.request
from lxml import etree
def crawl():
url='http://www.ivsky.com/tupian/haiyangshijie/'
headers={
"User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36",
}
resp=requests.get(url,headers=headers)
if resp.status_code==200:
resp.encoding='UTF-8'
html=etree.HTML(resp.text)
img_titles=html.xpath('//ul[@class="ali"]//a/@title')
img_urls=html.xpath('//ul[@class="ali"]//a/img/@src')
data=zip(img_titles,img_urls)
for img_title,img_url in data:
print('開始下載{title}.jpg'.format(title=img_title))
result=urllib.request.urlretrieve(img_url,
filename='../../data/圖片下載爬蟲/{title}.jpg'.format(title=img_title),
reporthook=loading,
data=None)
# print(result)
def loading(blocknum,blocksize,totalsize):
"""
回調(diào)函數(shù): 數(shù)據(jù)傳輸時(shí)自動(dòng)調(diào)用
blocknum:已經(jīng)傳輸?shù)臄?shù)據(jù)塊數(shù)目
blocksize:每個(gè)數(shù)據(jù)塊字節(jié)
totalsize:總字節(jié)
"""
percent=int(100*blocknum*blocksize/totalsize)
if percent>100:
percent=100
print("正在下載>>>{}%".format(percent))
import time
time.sleep(0.5)
if __name__ == '__main__':
crawl()
運(yùn)行結(jié)果
開始下載海里的海龜圖片.jpg
正在下載>>>0%
正在下載>>>100%
開始下載綺麗的海底世界圖片.jpg
正在下載>>>0%
正在下載>>>43%
正在下載>>>87%
正在下載>>>100%
開始下載可愛的海豹圖片.jpg
正在下載>>>0%
正在下載>>>50%
正在下載>>>100%
開始下載不同的海星圖片.jpg
正在下載>>>0%
正在下載>>>63%
正在下載>>>100%
開始下載可愛的水母圖片.jpg
正在下載>>>0%
正在下載>>>100%
開始下載活潑可愛的海豚圖片.jpg
正在下載>>>0%
正在下載>>>47%
正在下載>>>95%
正在下載>>>100%
開始下載陽光下的海膽殼圖片.jpg
正在下載>>>0%
正在下載>>>63%
正在下載>>>100%
開始下載海洋中的水母圖片.jpg
正在下載>>>0%
正在下載>>>56%
正在下載>>>100%
開始下載千姿百態(tài)的海螺圖片.jpg
正在下載>>>0%
正在下載>>>62%
正在下載>>>100%
開始下載水族館里的水生動(dòng)植物圖片.jpg
正在下載>>>0%
正在下載>>>46%
正在下載>>>93%
正在下載>>>100%
開始下載水母圖片.jpg
正在下載>>>0%
正在下載>>>100%
開始下載海星攝影圖片.jpg
正在下載>>>0%
正在下載>>>79%
正在下載>>>100%
開始下載五彩斑斕的海洋魚群圖片.jpg
正在下載>>>0%
正在下載>>>29%
正在下載>>>59%
正在下載>>>89%
正在下載>>>100%
開始下載漂亮的貝殼圖片.jpg
正在下載>>>0%
正在下載>>>39%
正在下載>>>79%
正在下載>>>100%
開始下載海底水母圖片.jpg
正在下載>>>0%
正在下載>>>82%
正在下載>>>100%
開始下載海底的珊瑚圖片.jpg
正在下載>>>0%
正在下載>>>48%
正在下載>>>97%
正在下載>>>100%
開始下載海星高清圖片.jpg
正在下載>>>0%
正在下載>>>25%
正在下載>>>50%
正在下載>>>75%
正在下載>>>100%
開始下載色彩鮮艷的熱帶海洋魚圖片.jpg
正在下載>>>0%
正在下載>>>63%
正在下載>>>100%

以上這篇使用urllib庫(kù)的urlretrieve()方法下載網(wǎng)絡(luò)文件到本地的方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python爬蟲實(shí)現(xiàn)百度翻譯功能過程詳解
這篇文章主要介紹了Python爬蟲實(shí)現(xiàn)百度翻譯功能過程詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05
Python使用pylab庫(kù)實(shí)現(xiàn)畫線功能的方法詳解
這篇文章主要介紹了Python使用pylab庫(kù)實(shí)現(xiàn)畫線功能的方法,結(jié)合具體實(shí)例分析了Python使用pylab庫(kù)的相關(guān)函數(shù)實(shí)現(xiàn)畫線功能的操作技巧,并附帶說明了相關(guān)函數(shù)與參數(shù)功能,需要的朋友可以參考下2017-06-06
12個(gè)Pandas/NumPy中的加速函數(shù)使用總結(jié)
在本文中,數(shù)據(jù)和分析工程師?Kunal?Dhariwal?為我們介紹了?12?種?Numpy?和?Pandas?函數(shù),這些高效的函數(shù)會(huì)令數(shù)據(jù)分析更為容易、便捷2022-09-09
Python+Matplotlib+LaTeX玩轉(zhuǎn)數(shù)學(xué)公式
這篇文章主要為大家介紹了如何在Matplotlib中使用LaTeX?公式和符號(hào)以及Python如何生成LaTeX數(shù)學(xué)公式。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下2022-02-02
pytorch查看通道數(shù) 維數(shù) 尺寸大小方式
這篇文章主要介紹了pytorch查看通道數(shù) 維數(shù) 尺寸大小方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-05-05

