学科分类
目录
网络爬虫

使用HTTPResponse对象

使用urllib.request模块中的urlopen方法发送HTTP请求后,服务器返回的响应内容封装在一个HTTPResponse类型的对象中,示例代码如下:

import urllib.request
response = urllib.request.urlopen('http://www.itcast.cn')
print(type(response))

执行示例代码,其输出结果为:

<class 'http.client.HTTPResponse'>

从输出结果可以看出,HTTPResponse类属于http.client模块。该类提供了获取URL、状态码、响应内容等一系列方法,常见的方法如下所示:

  • geturl() :用于获取响应内容的URL,该方法可以验证发送的HTTP请求是否被重新调配。

  • info():返回页面的元信息。

  • getcode() :返回HTTP请求的响应状态码。

接下来使用一段示例代码来演示这几个方法的使用,具体如下:

import urllib.request
response = urllib.request.urlopen('http://python.org')
# 获取响应信息对应的URL
print(response.geturl())
# 获取响应码
print(response.getcode())
# 获取页面的元信息
print(response.info())

执行上述示例代码,其输出结果如下:

https://www.python.org/
200
Server: nginx
Content-Type: text/html; charset=utf-8
X-Frame-Options: SAMEORIGIN
X-Clacks-Overhead: GNU Terry Pratchett
Content-Length: 48729
Accept-Ranges: bytes
Date: Wed, 23 Aug 2017 03:29:51 GMT
Via: 1.1 varnish
Age: 2915
Connection: close
X-Served-By: cache-nrt6129-NRT
X-Cache: HIT
X-Cache-Hits: 29
X-Timer: S1503458991.290683,VS0,VE0
Vary: Cookie
Strict-Transport-Security: max-age=63072000; includeSubDomains
点击此处
隐藏目录