批量下載Excel中的鏈接中的文件


前幾天有一個小任務,就是把一個Excel中的三百多個音頻下載下來,這些音頻都是URL的形式,於是就寫了個python腳本把他們都抓了下來,因為很簡單,所以就直接貼代碼了:

注意:首先要把Excel轉換成CSV文件的格式

import csv
import requests

# 文件路徑,需要替換成自己的文件路徑
file_rode = 'C:\\Users\\59990\\Desktop\\audio.csv'
# 打開文件
csv_file = csv.reader(open(file_rode, 'r', encoding='utf-8'))
# 跳過標題行
next(csv_file, None)

# 可以先用下面注釋里的語句看看你文件中的URL取出來之后是什么格式的
# for url in csv_file:
# print(url)

# 接着對里邊的每一條鏈接做如下操作
for url in csv_file:
    # 這里需要注意的是要將取出來的URL做一個字符串類型轉換,並截取其中的link的部分
    r = requests.get(str(url)[2:101])
    music = r.content
    # 目標路徑需要換成你自己的路徑,str(url)[90:-2]這個的意思是給文件命名
    new_url = "C:/Users/59990/Desktop/music/" + str(url)[90:-2]
    # 下面是將文件以二進制的形式寫入到目標文件中
    with open(new_url, 'ab') as file:
        file.write(music)
        file.flush

總結:這次雖然是一個很簡單的小腳本,但是對其中的字符串的轉換那里搞了很大一會,從csv中直接讀出來的數據好像不是以字符串的形式。直到現在我才明白過來,是我讀取的方式不對,我那種方法是直接讀取了整個csv,正確的方法應該是讀取csv中的我需要的那一列,改進后的方法如下

import csv
import requests

# 文件路徑,需要替換成自己的文件路徑
file_rode = 'C:\\Users\\59990\\Desktop\\audio.csv'

# 打開文件
csv_file = csv.reader(open(file_rode, 'r', encoding='utf-8'))
# 跳過標題行
next(csv_file, None)

# 可以先用下面注釋里的語句看看你文件中的URL取出來之后是什么格式的
# for url in csv_file:
# print(url)

# 接着對里邊的每一條鏈接做如下操作
for url in csv_file:
    # 這里就直接是url[0],意思是csv中的第一列的內容,不再是以表格的形式給到
    r = requests.get(url[0])
    music = r.content
    # 目標路徑需要換成你自己的路徑,str(url)[90:-2]這個的意思是給文件命名
    new_url = "C:/Users/59990/Desktop/music/" + str(url)[90:-2]
    # 下面是將文件以二進制的形式寫入到目標文件中
    with open(new_url, 'ab') as file:
        file.write(music)
        file.flush


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM