在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 問(wèn)答/Python  網(wǎng)絡(luò)安全/ 請(qǐng)為什么urllib.request.urlretrieve()下載文件都是0k

請(qǐng)為什么urllib.request.urlretrieve()下載文件都是0kb?

我的想法是從url上面利用urllib.request.urlretrieve()遠(yuǎn)程下載目標(biāo)音頻文件,但是為什么文件都是0kb文件,請(qǐng)問(wèn)有沒(méi)有人遇見(jiàn)解決過(guò)這個(gè)問(wèn)題能指教一下,謝謝!

clipboard.png

#這是我的源碼:

import requests
import urllib

url = 'http://i.qingting.fm/wapi/channels/82400/programs/2041562/pagesize/10'

#顯示進(jìn)度
def callbackfunc(blocknum, blocksize, totalsize):
    percent = 100.0 * blocknum * blocksize / totalsize
    if percent > 100:
        percent = 100
    print('下載進(jìn)度' + '%.2f%%'% percent)

html = requests.get(url)
for n in range(len(html.json()['data']['programs'])):
    m4aUrl_name = html.json()['data']['programs'][n]['name']
    m4aUrl_path = html.json()['data']['programs'][n]['file_path']
    m4aUrl_path = 'http://od.qingting.fm/' + m4aUrl_path
    urllib.request.urlretrieve(m4aUrl_path, m4aUrl_name, callbackfunc)
回答
編輯回答
我甘愿

我發(fā)現(xiàn)是你沒(méi)有命名文件名的錯(cuò)誤,準(zhǔn)確說(shuō)叫文件類型 :

import requests
import urllib

url = 'http://i.qingting.fm/wapi/channels/82400/programs/2041562/pagesize/10'

#顯示進(jìn)度
def callbackfunc(blocknum, blocksize, totalsize):
    percent = 100.0 * blocknum * blocksize / totalsize
    if percent > 100:
        percent = 100
    print('下載進(jìn)度' + '%.2f%%'% percent)

html = requests.get(url)
for n in range(len(html.json()['data']['programs'])):
    m4aUrl_name = html.json()['data']['programs'][n]['name'].split(':')[1]+'.m4a'
    m4aUrl_path = html.json()['data']['programs'][n]['file_path']
    m4aUrl_path = 'http://od.qingting.fm/' + m4aUrl_path
    
    # 這樣下載
    urllib.request.urlretrieve(m4aUrl_path,m4aUrl_name)
    
    # 或者這樣,這個(gè)可以解決防爬問(wèn)題
    # print(m4aUrl_name)
    # mp = requests.get(m4aUrl_path)
    # with open(m4aUrl_name,'wb') as f:
    #     f.write(mp.content)
2018年4月17日 10:25
編輯回答
旖襯

文件名引起的,你換個(gè)別的文件名,最好不要帶:的。

2018年8月28日 08:23