python request text 和 content的区别;requests.get().json()作用;string.rfind()作用

本文介绍了Python Requests库中响应对象的两个关键属性:text和content。resp.text提供Unicode形式的文本数据,适合处理字符串内容。而resp.content则返回二进制数据,适用于下载图片或文件。此外,还提及了使用requests.get().json()解析JSON响应的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 test和content简介
resp.text返回的是Unicode型的数据。

resp.content返回的是bytes型也就是二进制的数据。

如果你想取文本,可以通过r.text。
如果想取图片,文件,则可以通过r.content。

# requests库的使用:通过requests实现一个访问数据接口从中下载图片保存到本地



from time import time
from threading import Thread
import requests


class DownloadHandler(Thread):

    def __init__(self, url):
        super().__init__()
        self._url = url

    def run(self):
        # string.rfind(substr) 返回字符串中substr最后出现的一次位置
        filename = self._url[self._url.rfind('/') + 1:]
        print('Start downloading: %s' % filename)
        resp = requests.get(self._url)
        with open(filename, 'wb') as f:
            # 返回bytes型二进制数据(获取图片文件用resp.content)
            f.write(resp.content)


def main():
    start_time = time()
    # requests.get()构造一个想服务器请求资源的url对象
    # 返回值是一个包含服务器资源的Response对象
    resp = requests.get('http://api.tianapi.com/meinv/index?key=024759fe3b09b55caf5d462e8002d716&num=10')
    # print(resp)
    # print(type(resp)) # 返回Response对象
    # Requests中内置一个JSON解码器,可处理JSON数据返回成字典
    data_model = resp.json()
    # print(data_model)
    # print(type(data_model)) #返回 dict类型
    download_threads = []
    for mn_dict in data_model['newslist']:
        url = mn_dict['picUrl']
        # DownloadHandler(url).start()
        dt = DownloadHandler(url)
        download_threads.append(dt)
        dt.start()
    # 等待所有线程执行结束
    for dt in download_threads:
        dt.join()
    # 花费时间
    end_time = time()
    print("Total Cost %s" % (end_time - start_time))

if __name__ ==  '__main__':
    main()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值