zoukankan      html  css  js  c++  java
  • 批量下载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
    
  • 相关阅读:
    [并发编程] 进程、线程
    100. 相同的树
    Python 问题集
    this关键字在函数中的应用
    去除列表右边框
    JS——作用域
    javascript——值传递!!
    null和undefined的区别?
    浏览器内核——四大主流
    http常用状态码
  • 原文地址:https://www.cnblogs.com/mqjing/p/13629288.html
Copyright © 2011-2022 走看看