如果有这样一个场景,我们的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 xlrd
import urllib.request
import 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)

【Python爬虫】使用urllib.request下载已知链接的网络资源相关推荐

  1. python爬虫用urllib还是reques,python爬虫中urllib.request和requests有什么区别?

    在学习python爬虫,想要检索request相关内容时,往往会出现urllib.request和requests这两个词,urllib.request和requests都是python爬虫的模块,其 ...

  2. 利用python爬虫(part1)--urllib.request模块

    学习笔记 文章目录 网络爬虫概述 定义 爬虫分类 爬取数据步骤 爬虫请求模块 常用方法 urllib.request.urlopen()方法 响应对象(response)方法 关于请求头 urllib ...

  3. Python爬虫之urllib.request的使用

    需要的模块 urllib.request 获取get一个请求 这里以百度为例 r = urllib.request.urlopen("http://www.baidu.com") ...

  4. python爬虫之壁纸的下载

    python爬虫之壁纸的下载 好久没有写博客了,暑假这段时间在学校里面忙着写小论文,没机会写我最喜欢的爬虫了(虽然很简单,但架不住哥喜欢...) 好了,废话不多说了,开始把 本次爬虫爬取的是 手机壁纸 ...

  5. Python爬虫——利用Scrapy批量下载图片

    Python爬虫--利用Scrapy批量下载图片 Scrapy下载图片项目介绍 使用Scrapy下载图片 项目创建 项目预览 创建爬虫文件 项目组件介绍 Scrapy爬虫流程介绍 页面结构分析 定义I ...

  6. Python爬虫之urllib模块2

    Python爬虫之urllib模块2 本文来自网友投稿 作者:PG-55,一个待毕业待就业的二流大学生. 看了一下上一节的反馈,有些同学认为这个没什么意义,也有的同学觉得太简单,关于Beautiful ...

  7. Crawler:爬虫基于urllib.request库实现获取指定网址上的所有图片

    Crawler:爬虫基于urllib.request库实现获取指定网址上的所有图片 目录 输出结果 核心代码 输出结果 核心代码 # coding=gbk import urllib.request ...

  8. python爬虫之urllib库详解

    python爬虫之urllib库详解 前言 一.urllib库是什么? 二.urllib库的使用 urllib.request模块 urllib.parse模块 利用try-except,进行超时处理 ...

  9. Python爬虫进阶——urllib模块使用案例【淘宝】

    Python爬虫基础--HTML.CSS.JavaScript.JQuery网页前端技术 Python爬虫基础--正则表达式 Python爬虫基础--re模块的提取.匹配和替换 Python爬虫基础- ...

最新文章

  1. C#:将另一个应用程序的主窗口移至屏幕最前
  2. Bean的id、name、ref、refid
  3. 通过sort()方法实现升序和降序排列
  4. oracle迁移postsql的,osdba's blog : Oracle迁移PostgreSQL系列文章之二:merge语句
  5. 【Python进阶】Python进阶专栏、编程与开源框架知识星球上线,等你来follow
  6. [转]用C#编写ActiveX控件(一)
  7. java定义private_java9开始——接口中可以定义private私有方法
  8. 效果良好!构造一个输入速度的神经网络,以DQN方式实现小游戏的自动控制
  9. inner/left/right inner
  10. JetBrains:webstrom中代码模板设置
  11. 新时代程序员——怎么样应对吃青春饭问题
  12. Android文字转语音
  13. 闲置台式机+文件服务器,闲置主机秒变家用NAS,让你的闲置电脑变存储中心
  14. 25匹赛马得前三名问题求解
  15. linux c 端口复用,Linux C++ 网络编程学习系列(1)——端口复用实现
  16. hdu 6357 Hills And Valleys (DP)
  17. 万字长文Python面试题,年后找工作就靠这了
  18. 好心情:吃精神科药物药不见效?你可能忽视了血药浓度
  19. python画微信表情
  20. 测试qq和微信voip内网穿透

热门文章

  1. mysql is needed by_libnuma.so.1()(64bit) is needed by mysql-community-server-5.7.9-1.el6.x86_64
  2. 大于小于优化_架构 - 以MySQL为例,详解数据库索引原理及深度优化
  3. sqlite3修改表内容python_Python sqlite3数据库模块使用攻略
  4. 如何开发rest接口服务_如何简化网络请求接口开发
  5. c语言中闰年的流程图_C语言-算法与流程图
  6. python中不同类型的数据不能相互运算_Python第三课——数据类型与运算(2)
  7. java用户界面项目_结对项目(带图型用户界面)Java实现【柴政-陈起廷】
  8. Altium Designer20 PCB板子绘制
  9. maxvalue mysql自动分区_创建mysql表分区的方法
  10. contract forward,菜鸟请教一个问题:the difference between forward contract and future contract...