大数据采集与爬虫
上QQ阅读APP看书,第一时间看更新

2.4 requests库的安装及使用

2.4.1 requests库概述

requests库是Python中的一个HTTP网络请求库,用来简化网络请求。通过对requests库的引用,便能够使用其中的成员(方法和属性),如图2-8所示。

图2-8 Requests库成员

2.4.2 requests库的安装

安装request库的操作步骤如下。

1)在PyCharm中选择“File”→“Settings”菜单命令,如图2-9所示。

图2-9 选择“File”→“Settings”菜单命令

2)弹出“Settings”对话框,在左侧窗格中依次选择“Project:pycharmprojects”→“Project Interpreter”选项,然后单击右上角的“+”按钮,如图2-10所示。

图2-10 “Setting”对话框

3)弹出“Available Packages”对话框,在搜索文本框中输入“requests”,选择列表框中出现的“requests”,然后单击“Install Package”按钮,如图2-11所示。

图2-11 “Available Package”对话框

2.4.3 requests库的基本用法

1.requests库的常用方法

(1)request()

requests.request()用于生成一个请求。这是一个总方法,可以通过传入不同的参数实现不同的目的。

语法:requests.request(method,url,∗∗kwargs)

参数说明:

1)method表示请求方式参数,共7个,分别为GET、POST、HEAD、PUT、PATCH、DELETE。必填。

2)url表示拟获取页面的URL链接。必填。

3)∗∗kwargs表示可选的控制访问参数,共13个,分别如下。

● params:字典或字节序列,作为参数增加到url中。

● data:字典、字节序列或文件对象,作为Request的内容。

● json:JSON格式的数据,作为Request的内容。

● headers:设置头部,字典类型,如{'user-agent':'my-app/0.0.1'}(模拟浏览器进行访问)。

● cookies:设置cookie,字典类型,如{"key":"value"}。

● auth:元组格式的数据。

● files:字典类型,传输文件。

● timeout:设置超时时间,以秒(s)为单位。

● proxies:设置代理,字典类型,如{"http":"http://10.10.1.10:8080"}。

● allow_redirects:True或False,默认为True,重定向开关。

● stream:True或False,默认为True,获取内容立即下载开关。

● verify:True或False,默认为True,认证SSL证书开关。

● cert:本地SSL证书路径。

【例2-1】使用requests的request()方法以字典数据作为参数获取github的API数据。

(2)get()

requests.get()是指使用GET方法获取指定的URL。

语法:requests.get(url,params={},headers={},cookies={},allow redirects=True,timeout=float,proxies={},verify=True)

【例2-2】使用requests的get()方法以字典数据作为参数获取github的API数据。

(3)post()

requests.post()是指使用POST方法获取指定URL。以表单形式发送数据时,只需传递一个字典数据给data关键字,在发送请求的时候,会自动编码为表单的形式。

语法:requests.post(url,data={},headers={},cookies={},json=' ',files={},allow_redirects=True,timeout=float,proxies={},verify=True)

【例2-3】使用requests的post()方法以字典数据作为参数获取github的API数据。

(4)head()

requests.head()是指使用HEAD方法获取页面的头部信息。

【例2-4】使用requests的head()方法获取指定URL的头部信息。

2.requests库的对象属性

1)requests.status_code是指返回状态码。

2)requests.text是指返回的页面内容。

3)requests.encoding是指返回页面内容使用的可能的编码方式。如果网页没有设置charset的值,就使用默认的编码格式。

4)requests.apparent_encoding是指返回对页面内容分析后的编码方式。

5)requests.content是指以二进制的形式返回response的内容。

3.一个简单的requests库实现案例

使用requests库显示百度页面的各属性值。

1)在Python文件中导入requests库。

2)使用requests.get()方法获得指定URL。

3)查看返回的requests对象属性值。

4)显示结果如图2-12所示。

图2-12 百度页面的属性值