栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python爬虫库requests获取响应内容、响应状态码、响应头

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python爬虫库requests获取响应内容、响应状态码、响应头

首先在程序中引入Requests模块

import requests

一、获取不同类型的响应内容

在发送请求后,服务器会返回一个响应内容,而且requests通常会自动解码响应内容

1.文本响应内容

获取文本类型的响应内容

r = requests.get('https://www.baidu.com')
r.text # 通过文本的形式获取响应内容
'rn çx99¾åo|ä¸x80ä¸x8bï¼x8cä½xa0å°±çx9f¥éx81x93       æx96°éx97» hao123 åx9c°åx9b¾ è§x86é¢x91 è′′åx90§   æx9b′å¤x9aäo§åx93x81      

åx853äox8eçx99¾åo| about Baidu

©2017 Baidu ä½¿çx94¨çx99¾åo|åx89x8då¿x85èˉ»  æx84x8fè§x81åx8fx8dé|x88 äo¬ICPèˉx81030173åx8f· 

rn'

通过encoding来获取响应内容的编码以及修改编码

r.encoding
'ISO-8859-1'

2.二进制响应内容

r.content # 通过content获取的内容便是二进制类型的

3.JSON响应内容

r.json()

4.原始响应内容

r = requests.get('https://www.baidu.com',stream=True)
print(r.raw) # 就是urllib中的HTTPResponse对象
print(r.raw.read(10))

b'x1fx8bx08x00x00x00x00x00x00x03'

二、响应状态码

获取响应状态码

r = requests.get('https://www.baidu.com')
r.status_code
200

判断响应状态码

r.status_code == requests.codes.ok
True

当发送一个错误请求时,抛出异常

bad_r = requests.get('http://httpbin.org/status/404')
print(bad_r.status_code)
bad_r.raise_for_status()
404



---------------------------------------------------------------------------

HTTPError   Traceback (most recent call last)

 in ()
   1 bad_r = requests.get('http://httpbin.org/status/404')
   2 print(bad_r.status_code)
----> 3 bad_r.raise_for_status()


D:Anaconda3libsite-packagesrequestsmodels.py in raise_for_status(self)
  926 
  927     if http_error_msg:
--> 928raise HTTPError(http_error_msg, response=self)
  929 
  930   def close(self):


HTTPError: 404 Client Error: NOT FOUND for url: http://httpbin.org/status/404

三、响应头

获取响应头

r = requests.get('https://www.baidu.com')
r.headers
{'Cache-Control': 'private, no-cache, no-store, proxy-revalidate, no-transform', 'Connection': 'Keep-Alive', 'Content-Encoding': 'gzip', 'Content-Type': 'text/html', 'Date': 'Mon, 23 Jul 2018 09:04:12 GMT', 'Last-Modified': 'Mon, 23 Jan 2017 13:23:51 GMT', 'Pragma': 'no-cache', 'Server': 'bfe/1.0.8.18', 'Set-cookie': 'BDORZ=27315; max-age=86400; domain=.baidu.com; path=/', 'Transfer-Encoding': 'chunked'}

获取响应头的具体字段

print(r.headers['Server'])
print(r.headers.get('Server'))
bfe/1.0.8.18
bfe/1.0.8.18

更多关于Python爬虫库requestsr的使用方法请查看下面的相关链接

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/21788.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号