博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Python爬虫】使用urllib.request下载已知链接的网络资源
阅读量:4101 次
发布时间:2019-05-25

本文共 2032 字,大约阅读时间需要 6 分钟。

如果有这样一个场景,我们的EXCEL某一列记录了好多(图片、视频、音频)链接A,另外一列记录了链接名称B,现在我们想要自动下载这些链接的文件,我们应该怎样处理?

1.循环去excel取值,将A和B存入到一个二维列表中
2.根据链接后缀不同情况(.jpg,.mp4,mp3等)用urllib.request去下载内容

具体代码如下:

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''#作者:cacho_37967865#博客:https://blog.csdn.net/sinat_37967865#文件:getFile.py#日期:2018-11-24#备注:获取excel文件中下载信息存入到列表,然后循环去取数据下载文件(mp4,mp3,jpg,pdf等)'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''import xlrdimport urllib.requestimport osdef get_excel_cell(xlsFile,num,nrows):    data = xlrd.open_workbook(xlsFile)    table = data.sheets()[0]    cellData = []    # 获取指定列数据    for i in range(num, nrows):              # 控制行数(开始i=num处理),(结束i=nrows不处理)        row = []        className = table.cell_value(i, 3)   # 第4列课程名称        row.append(className)        classUrl = table.cell_value(i, 4)    # 第5列课程下载路径        row.append(classUrl)        cellData.append(row)    return cellDatadef get_video(folder,url,fileName,fileType):    os.chdir(folder)                           # 切换到将要存放文件的目录    file = open(fileName + fileType, "wb")     # 打开文件    try:        req = urllib.request.Request(url=url)        req.add_header("User-Agent","Mozilla/5.0 (Linux; Android 6.0; Nexus 5 Build/MRA58N) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.76 Mobile Safari/537.36")        video = urllib.request.urlopen(req, timeout=40)        mp4 = video.read()                     # 将文件转换为bytes格式        file.write(mp4)                        # 文件写入        print(type(file),type(req),type(video),type(mp4))    except Exception as f:        print(str(f))    file.close()if __name__ == '__main__':    videoInfo = get_excel_cell('F:\PythonProject\Pacong\docs\yuyus185.xls',182,183)    for i in range(len(videoInfo)):        fileName = videoInfo[i][0]        url = videoInfo[i][1]        fileType = url[-4:]          # 截取最后4位,可以判断内容的类型(.jpg,.mp4,mp3等)        print(fileName,fileType,url)        get_video('F:\SoftwareTest',url,fileName,fileType)

 

你可能感兴趣的文章
Java代码优化:使用构造函数和使用一个setter的效率差别
查看>>
【面试】我是如何在面试别人Spring事务时“套路”对方的
查看>>
Redis 21问,你接得住不?
查看>>
MySQL-分布式架构-MyCAT
查看>>
“你对薪资要求是多少?” 面试前做好这些细节,更容易被录取
查看>>
MySQL大表优化方案
查看>>
编写高性能Java代码的最佳实践
查看>>
MySQL 性能优化之骨灰级,高阶神技
查看>>
Java 性能优化:教你提高代码运行的效率
查看>>
Java 9 逆天的十大新特性
查看>>
2019 Java发展趋势报告:Java老矣,Java正年轻
查看>>
Java八大优势,这就是你选择它的理由!
查看>>
消灭 Java 代码的“坏味道”
查看>>
2019年IT人必看技能需求排名,Java第二,Python第三,第一竟是它
查看>>
【Java基础内容总结】Java基础看这个就足够了
查看>>
从入门到放弃?零基础学java并不难,小白快速入门秘籍
查看>>
史上最简单的 MySQL 教程
查看>>
Spring 常犯的十大错误,打死都不要犯!
查看>>
苏宁Spring Cloud微服务脚手架工具vole实践分享
查看>>
SpringCloud学习笔记-Eureka服务治理
查看>>