导入
什么是 'requests' 包?
了解 requests 库的安装、基本用法和常用 Response 方法
requests 库是 Python 自带的 urllib 库的一个更符合 Python 风格的替代品。你会发现 requests 库的 API 使用起来要简单得多。你可以通过 pip、easy_install 或从源码安装 requests 库。
使用 requests
我们来看几个使用 requests 库的例子。将通过一系列简短的代码片段来说明如何使用这个库。
1import requests 2r = requests.get("http://www.google.com")
此示例返回一个 Response 对象。你可以通过调用 Response 对象的方法来了解如何使用 requests。让我们使用 Python 的 dir 函数查看可用的方法:
1print(dir(r)) 2#['__attrs__', '__bool__', '__class__', '__delattr__', '__dict__', 3#'__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', 4#'__getstate__', '__gt__', '__hash__', '__init__', '__iter__', '__le__', '__lt__', 5#'__module__', '__ne__', '__new__', '__nonzero__', '__reduce__', '__reduce_ex__', 6#'__repr__', '__setattr__', '__setstate__', '__sizeof__', '__str__', '__subclasshook__', 7#'__weakref__', '_content', '_content_consumed', 'apparent_encoding', 'close', 8#'connection', 'content', 'cookies', 'elapsed', 'encoding', 'headers', 'history', 9#'iter_content', 'iter_lines', 'json', 'links', 'ok', 'raise_for_status', 'raw', 10#'reason', 'request', 'status_code', 'text', 'url']
如果你运行以下代码,可以看到网页的源代码:
1print(r.content)
该命令的输出内容过长,无法完整包含在书中,因此建议你自己运行尝试。如果你想查看网页的头部信息,可以运行以下代码:
1print(r.headers)
注意,headers 属性返回的是一个类似字典的对象,并非函数调用。由于网页头部信息通常太宽,不适合在书中显示,因此这里不展示输出结果。Response 对象还提供了许多其他有用的方法和属性,例如获取 cookies、页面中的链接,以及页面返回的状态码。
requests 库支持以下 HTTP 请求类型:POST、GET、PUT、DELETE、HEAD 和 OPTIONS。如果页面返回的是 JSON 数据,可以通过调用 Response 对象的 json 方法来获取。下面我们来看一个实际应用的例子。