使用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: 保存到本地時,使用的文件(路徑)名稱 reporthook: 文件傳輸時的回調(diào)函數(shù) data: post提交到服務(wù)器的數(shù)據(jù) 該方法返回一個二元元組("本地文件路徑",<http.client.HTTPMessage對象>) """ 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ù)傳輸時自動調(diào)用 blocknum:已經(jīng)傳輸?shù)臄?shù)據(jù)塊數(shù)目 blocksize:每個數(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()
運行結(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%
開始下載水族館里的水生動植物圖片.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ò)文件到本地的方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
python利用Appium實現(xiàn)自動控制移動設(shè)備并提取數(shù)據(jù)功能
這篇文章主要介紹了python利用Appium自動控制移動設(shè)備并提取數(shù)據(jù),本文以控制抖音app滑動并獲取抖音短視頻發(fā)布者為例,通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下2021-09-09Python實現(xiàn)如何根據(jù)文件后綴進行分類
本文主要為大家詳細介紹了如何通過python實現(xiàn)根據(jù)文件后綴實現(xiàn)分類,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以關(guān)注一下2021-12-12Python 3.10 的首個 PEP 誕生,內(nèi)置類型 zip() 迎來新特性(推薦)
這篇文章主要介紹了Python 3.10 的首個 PEP 誕生,內(nèi)置類型 zip() 迎來新特性,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-07-07Python猜解網(wǎng)站數(shù)據(jù)庫管理員密碼的腳本
這篇文章主要和大家分享一個Python腳本,可以實現(xiàn)猜解網(wǎng)站數(shù)據(jù)庫管理員的密碼。文中的示例代碼講解詳細,需要的小伙伴可以參考一下2022-02-02