专栏首页数据结构笔记python爬虫系列之 requests实战:用 requests库下载网页和图片

python爬虫系列之 requests实战:用 requests库下载网页和图片

一、requests获取网页并打印

#-*- coding: utf-8 -*
import requests


url = 'http://www.baidu.com'

r = requests.get(url)
r.encoding = r.apparent_encoding

print(r.text)

这个在上节我们已经讲过,并不是很难,接下来来点有意思的。

二、requests获取图片并下载到本地

在上一节我们讲过,响应 Response的 content属性可以用来下载文件,但是我并没有讲怎么实现。

这节我们就来讲讲怎么用 requests来下载文件。

首先我们在网上随便找一张图片:http://img.netbian.com/file/2018/0127/7acb22d76d5ad9706bbb4251481b2e3b.jpg

#-*- coding: utf-8 -*
import requests


src = 'http://img.netbian.com/file/2018/0127/7acb22d76d5ad9706bbb4251481b2e3b.jpg'

r = requests.get(src)

with open('bizhi.jpg', 'wb') as f:
    f.write(r.content)

print('下载完成') 

这里的 open( filename, mode ) 是 python的内置函数,用于打开一个文件,接受两个参数 filename和 mode,返回 一个 file对象。

file对象有 write方法,接受二进制数据,可以通过 write方法将二进制数据写入 file对象对应的文件中

其中 filename是要打开的文件的名称,mode是打开文件的方式,mode的取值有如下几种:

模式

描述

r

以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。

rb

以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。

r+

打开一个文件用于读写。文件指针将会放在文件的开头。

rb+

以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。

w

打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

wb

以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

w+

打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

wb+

以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。

a

打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

ab

以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

a+

打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

ab+

以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。

理论上只要有文件的真实地址,所有文件都可以通过 requests来下载,当然也包括小电影§( ̄▽ ̄)§,和下载图片类似:

#-*- coding: utf-8 -*
import requests


src = 'http://qrcode-1254412656.cosgz.myqcloud.com/sfdgfdyhtbcnhgjgm.mp4'

r = requests.get(src)

with open('movie.mp4', 'wb') as f:
    f.write(r.content)

print('下载完成')

总结:

要下载一个文件

需要文件的真实地址

用 requests获取文件

用 open函数将 返回的 r.content写入文件,模式选择 wb

记住后缀名不能错

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • scrapy爬虫框架(一):scrapy框架简介

    安装完成后,python会自动将 scrapy命令添加到环境变量中去,这时我们就可以使用 scrapy命令来创建我们的第一个 scrapy项目了。

    渔父歌
  • 微信小程序自定义状态栏

    为了避免遮挡用户手机顶部状态栏,还需要获取用户手机状态栏的高度,并在在每个页面中添加一个占位用的 view标签来防止遮挡用户状态栏。

    渔父歌
  • (二)传统密码——Caesar密码

    Caesar密码非常简单,就是对字母表中的每个字母,用它之后的第三个字母来代换。例如:

    渔父歌
  • python: IO操作

    JNingWei
  • 《linux c编程指南》学习手记4

    7.1 文件系统简介 7.1.1 文件 文件类型:普通文件、目录文件、链接文件、设备文件、管道文件 文件权限:r w x 访问权限:文件所有者、文件所有者同组用...

    用户1154259
  • Tesseract:训练

    http://www.zmonster.me/2015/05/05/tesseract-training.html

    bear_fish
  • 【C语言基础】fopen函数使用

    r代表read的简写,+代表可读可写,w代表write,b代表bit二进制位,t代表text r 打开只读文件,该文件必须存在 r+ 打开可读可写的文件,该文件...

    程序员互动联盟
  • 如何学python 第十九课 文件操作

    今天我们来说说文件操作。文件操作在程序编写里有着举足轻重的作用。文件操作,主要包含文件的输入和输出。学会了文件操作,就可以写出更符合实际需求的脚本。 我会先介绍...

    用户1631416
  • 收集3:所有文件格式

    A 对象代码库文件 AAM Authorware shocked文件 AAS Authorware shocked包 ABF Adobe二进制屏幕字体 ...

    py3study
  • Python 之文件读写操作

            使用 open 打开文件后,格式:open(filename,mode),最后一定要调用文件对象的 close() 方法,如图所示:

    py3study

扫码关注云+社区

领取腾讯云代金券