您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關使用urlretrieve()函數怎么下載網絡文件,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
源碼
# !/usr/bin/env python # -*- coding:utf-8 -*- """ 圖片(文件)下載,核心方法是 urllib.urlrequest 模塊的 urlretrieve()方法 urlretrieve(url, filename=None, reporthook=None, data=None) url: 文件url filename: 保存到本地時,使用的文件(路徑)名稱 reporthook: 文件傳輸時的回調函數 data: post提交到服務器的數據 該方法返回一個二元元組("本地文件路徑",<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): """ 回調函數: 數據傳輸時自動調用 blocknum:已經傳輸的數據塊數目 blocksize:每個數據塊字節 totalsize:總字節 """ percent=int(100*blocknum*blocksize/totalsize) if percent>100: percent=100 print("正在下載>>>{}%".format(percent)) import time time.sleep(0.5) if __name__ == '__main__': crawl()
看完上述內容,你們對使用urlretrieve()函數怎么下載網絡文件有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。