使用 requests 请求由二进制组成的图片、音频及视频
以请求这个 https://www.gaoyuanqi.cn/images/avatar.png 头像为例
打印二进制数据
Response.text
1 2 3 4 5
| import requests
res = requests.get('https://www.gaoyuanqi.cn/images/avatar.png') print(res.status_code) print(res.text)
|
部分运行结果如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| 200 ����JFIF��C
%-(0%()(��C
(((((((((((((((((((((((((((((((((((((((((((((((((((����"�� ��?!1A"Qa2q� �#B��3R��CSbr�$4sc������$!1A"Q2#��R��;����v^��W8me:�i�8NY7��I�yl�(�>j퍰����4���p py�WW��B? ����e�ͺݰGG.��aT�xA��ϼ�ҧl�Ly���KY1�2U�}��)�^đ��ͻ����x��2є+�>�7�����>"گx�y�>����ZQX_Ϊx���O�>_���D��Gb.��[{j�=�JҘ�Q Q���:��O�(;z�^�5rk��{��p�yC4Dh�<S�!�b��# ��/2����f˷���p�����:�/�Z "��8 #}#�����^64$���~�m�s�%[��a
|
图片是二进制数据,在打印时会转换为 str
类型,即图片转换成字符串,因此出现乱码
Response.content
1 2 3 4 5
| import requests
res = requests.get('https://www.gaoyuanqi.cn/images/avatar.png') print(res.status_code) print(res.content)
|
部分运行结果如下:
1 2
| 200 b'\xff\xd8\xff\xe0\x00\x10JFIF\x00\x01\x01\x00\x00\x01\x00\x01\x00\x00\xff\xdb\x00C\x00\x06\x04\x05\x06\x05\x04\x06\x06\x05\x06\x07\x07\x06\x08\n\x10\n\n\t\t\n\x14\x0e\x0f\x0c\x10\x17\x14\x18\x18\x17\x14\x16\x16\x1a\x1d%\x1f\x1a\x1b#\x1c\x16\x16 , #&\')*)\x19\x1f-0-(0%()(\xff\xdb\x00C\x01\x07\x07\x07\n\x08\n\x13\n\n\x13(\x1a\x16\x1a((((((((((((((((((((((((((((((((((((((((((((((((((\xff\xc0\x00\x11\x08\x02\x80\x02\x80\x03\x01"\x00\x02\x11\x01\x03\x11\x01\xff\xc4\x00\x1d\x00\x01\x00\x00\x07\x01\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\xff\xc4\x00?\x10\x00\x02\x01\x03\x02\x04\x05\x02\x03\x06\x04\x05\x04\x03\x00\x00\x00\x01\x02\x03\x04\x11\x05!\x06\x121A\x07\x13"Qa2q\x14\x81\x91\x08\x15#B\xa1\xb13R\xc1
|
开头有一个 b
,这是 bytes
类型的数据
保存二进制数据
1 2 3 4 5
| import requests
res = requests.get('https://www.gaoyuanqi.cn/images/avatar.png') with open('avatar.png', 'wb') as f: f.write(res.content)
|
运行后会在当前目录下生成名为 avatar.png
的图片
