Python爬虫文件下载图文教程

作者:fangjun123fj 时间:2023-11-18 23:59:03 

而今天我们要说的内容是:如果在网页中存在文件资源,如:图片,电影,文档等。怎样通过Python爬虫把这些资源下载下来。

1、怎样在网上找资源:

就是百度图片为例,当你如下图在百度图片里搜索一个主题时,会为你跳出一大堆相关的图片。

还有如果你想学英语,找到一个网站有很多mp3的听力资源,这些可能都是你想获取的内容。

现在是一个互联网的时代,只要你去找,基本上能找到你想要的任何资源。

Python爬虫文件下载图文教程

2、怎样识别网页中的资源:

以上面搜索到的百度图片为例。找到了这么多的内容,当然你可以通过手动一张张的去保存,但这样做既费力又费事。你当然更希望通过程序自动去下载所找到的资源。要想代码识别这些资源,就要告诉代码这些资源有哪些特征,怎样在网页中找到它们。

打开浏览器的调试功能(不同浏览器可能有差别,不知道的百度一下吧)。找出网页中你想要下载资源的路径,如下图所示。如果有许多类似资源需要下载,则要找到识别这些资源地址的规律,然后告诉代码。

Python爬虫文件下载图文教程

3、资源下载方法一:

代码很简单,直接上代码:


from urllib.request import urlretrieve

urlretrieve("图片URL", "./image.jpg")

 

直接通过urlretrieve函数就把URL对应的图片给下载到当前文件夹(./)中了,并把图片命名为image.jpg。

4、资源下载方法二:

还是直接看代码:


import requests

resource = requests.get("图片URL")

with open("./image.jpg", mode="wb") as fh:

fh.write(resource.content)

此下载方法要安装python的requests库。从功能上来说与下载方法一是一样的。python库的安装方法用pip就好。很简单,这里都不啰嗦了。

5、资源下载方法三:

看代码:


import requests

resource = requests.get("图片URL", stream=True)

with open("./image.jpg", mode="wb") as fh:

for chunk in resource.iter_content(chunk_size=100):

fh.write(chunk)

此方法与下载方法二的不同之处在于在get方法调用时使用了参数【stream=True】。而在写入的文件的时候是分块写入的。

什么意思呢:

前两种方法是把一个文件全部下载到内存后,再一起写入到硬盘文件中。

方法三是下载一定的量(这里指的是100字节)后,就写入到硬盘文件中,直到全部写完。

第三种方法的好处是,如果在下载大容量文件时,不会造成内存的过度使用。

6、资源下载说明一:

上述的代码都是通过下载图片资源为例子的,但所有其它资源,如文档,电影等的下载方式是一样的。关键是要正确的识别出网页中资源所对应的URL地址才能够正确的下载(因为有些资源是用的相对路径或加密后的路径)。

7、资源下载说明二:

上面例子中的代码都是下载单一资源的。如果要在同一网页中下载多个资源的思路如下:

1. 找出要下载资源的URL,并形成一个资源集合;

2. 把下载函数中的资源URL与保存路径参数化;

3. 遍历资源集合,依靠循环调用下载函数来达到多个资源下载的目的。

总结:以上就是本次介绍关于Python爬虫下载文件的所有知识点内容,感谢大家的阅读。

来源:https://jingyan.baidu.com/article/aa6a2c1487632d0d4c19c4ab.html

标签:Python,爬虫,文件下载
0
投稿

猜你喜欢

  • Python 类的魔法属性用法实例分析

    2022-02-20 07:22:15
  • OpenCV 图像梯度的实现方法

    2023-07-14 08:25:43
  • Express结合Webpack的全栈自动刷新

    2024-05-09 10:34:13
  • postman批量执行接口测试的图文步骤

    2023-03-14 00:22:13
  • Python浪漫玫瑰盛开表白源代码

    2022-03-18 11:27:00
  • Python中six模块基础用法

    2021-03-12 18:24:30
  • Python基于辗转相除法求解最大公约数的方法示例

    2023-08-24 19:47:35
  • ACCESS数据库的压缩,备份,还原,下载,删除的实现

    2024-01-18 16:16:26
  • PHP下通过QRCode类库创建中间带网站LOGO的二维码

    2024-05-11 09:22:50
  • tensorflow实现训练变量checkpoint的保存与读取

    2023-12-15 18:10:33
  • Python正则表达式re模块详解(建议收藏!)

    2022-07-28 04:52:46
  • 使用 XMLSPY 设计项目的 Schema 原型

    2010-08-24 18:25:00
  • python查找指定文件夹下所有文件并按修改时间倒序排列的方法

    2023-08-08 01:11:57
  • Django接受前端数据的几种方法总结

    2021-11-26 23:32:53
  • Python打包方法Pyinstaller的使用

    2022-06-08 13:25:21
  • Python 异步之如何保护任务免于取消详解

    2022-08-04 05:03:26
  • Python图像处理模块ndimage用法实例分析

    2023-09-08 16:52:26
  • SQL Server中将数据导出为XML和Json方法分享

    2024-01-22 19:04:22
  • this.clientWidth和this.offsetWidth两个有什么不同

    2024-04-22 22:25:16
  • 在Django admin中编辑ManyToManyField的实现方法

    2021-03-05 18:03:47
  • asp之家 网络编程 m.aspxhome.com