17.Requests【接口响应】解析静态文件响应(文件下载)

一、前言

像文本,图片,视频,音乐等能打开的文件,称之为静态资源,请求获取静态资源也叫文件下载。

二、学习目标

1.文件下载

2.爬虫案例

三、知识点

1.【获取静态文件】

静态资源文件,是通过res.content来获取文件的二进制内容,将二进制内容写入文本即可达到下载文件的效果。

代码示例:

import requests

url = 'http://httpbin.org/robots.txt'
res = requests.get(url)

#获取响应内容
res_con = res.content #获取二进制内容

#将二进制内容写入文件(文件下载)
with open('robots.txt','wb') as f: #写入文件
    f.write(res_con)

2.【爬虫案例】

# coding:utf-8
import requests
import re
import os
if not os.path.exists("./qiutu"):
    os.mkdir("./qiutu")

headers = {
    "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36"
}

for page in range(1,14):
    url = "https://www.qiushibaike.com/imgrank/page/%d/"%page
    print("loading..."%page)
    page_text = requests.get(url=url,headers=headers).text
    ex = '<div class="thumb">.*?<img src="(.*?)" alt=.*?</div>'
    image_src_list = re.findall(ex,page_text,re.S)#S是单行,M是多行
    for src in image_src_list:
        src = "https:" + src
        image_data = requests.get(url=src,headers=headers).content
        img_name = src.split('/')[-1]#切分路径/之后的内容
        img_path = "./qiutu/" + img_name
        with open(img_path,'wb') as fp:
            fp.write(image_data)#写入数据
            print(img_name,'下载成功!!!')
posted @ 2023-01-17 10:19  测开星辰  阅读(133)  评论(0编辑  收藏  举报