使用urllib庫的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庫的urlretrieve()方法下載網(wǎng)絡(luò)文件到本地的方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
opencv鎖定鼠標(biāo)定位的實(shí)現(xiàn)
本文主要介紹了opencv鎖定鼠標(biāo)定位的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-02-02python利用Appium實(shí)現(xiàn)自動(dòng)控制移動(dòng)設(shè)備并提取數(shù)據(jù)功能
這篇文章主要介紹了python利用Appium自動(dòng)控制移動(dòng)設(shè)備并提取數(shù)據(jù),本文以控制抖音app滑動(dòng)并獲取抖音短視頻發(fā)布者為例,通過實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-09-09Python實(shí)現(xiàn)如何根據(jù)文件后綴進(jìn)行分類
本文主要為大家詳細(xì)介紹了如何通過python實(shí)現(xiàn)根據(jù)文件后綴實(shí)現(xiàn)分類,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以關(guān)注一下2021-12-12python中的計(jì)時(shí)器timeit的使用方法
本篇文章主要介紹了python中的計(jì)時(shí)器timeit的使用方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-10-10Python 3.10 的首個(gè) PEP 誕生,內(nèi)置類型 zip() 迎來新特性(推薦)
這篇文章主要介紹了Python 3.10 的首個(gè) PEP 誕生,內(nèi)置類型 zip() 迎來新特性,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-07-07Python猜解網(wǎng)站數(shù)據(jù)庫管理員密碼的腳本
這篇文章主要和大家分享一個(gè)Python腳本,可以實(shí)現(xiàn)猜解網(wǎng)站數(shù)據(jù)庫管理員的密碼。文中的示例代碼講解詳細(xì),需要的小伙伴可以參考一下2022-02-02