![大数据采集与爬虫](https://wfqqreader-1252317822.image.myqcloud.com/cover/726/33643726/b_33643726.jpg)
2.4 requests库的安装及使用
2.4.1 requests库概述
requests库是Python中的一个HTTP网络请求库,用来简化网络请求。通过对requests库的引用,便能够使用其中的成员(方法和属性),如图2-8所示。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/47_02.jpg?sign=1739516141-l2fwGTebXJl8S6bolG9JJORb8XDnuiMv-0-ebe2718012441a3b90dc1fb88e2bfd67)
图2-8 Requests库成员
2.4.2 requests库的安装
安装request库的操作步骤如下。
1)在PyCharm中选择“File”→“Settings”菜单命令,如图2-9所示。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/48_01.jpg?sign=1739516141-Y7vdAMXih0WENZDTp6OeIZ1kUsChmLUA-0-181e4bee6c821c78649768acc8df8603)
图2-9 选择“File”→“Settings”菜单命令
2)弹出“Settings”对话框,在左侧窗格中依次选择“Project:pycharmprojects”→“Project Interpreter”选项,然后单击右上角的“+”按钮,如图2-10所示。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/48_02.jpg?sign=1739516141-nxD0NWJcRrHxW2UQCTVJVMvyrZU6lskN-0-fbad430f7d2b5128e7e9ec0511c89b4a)
图2-10 “Setting”对话框
3)弹出“Available Packages”对话框,在搜索文本框中输入“requests”,选择列表框中出现的“requests”,然后单击“Install Package”按钮,如图2-11所示。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/49_01.jpg?sign=1739516141-vpGkQB90Vl2q2dpk7wCFsvmPPZiIJ27k-0-38af88bdc7daf3c34626b67a48fefbde)
图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数据。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/50_01.jpg?sign=1739516141-KP80I7HgDLnNtaB7LrtPdkqJCuOM5Slt-0-41fe8cbc32440ece9b766710e790b6ca)
(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数据。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/50_02.jpg?sign=1739516141-sQqKZdC6D8NbF1xVkRZk6X1kzGX3vWMs-0-61d73a21e5aaa2e9b85dfc8fd14172f2)
(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数据。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/50_03.jpg?sign=1739516141-5WqIHTmz0XwG6pUy795idOnIHwg4of3k-0-16c844b6e5465af2c8667d2bd3bfa410)
(4)head()
requests.head()是指使用HEAD方法获取页面的头部信息。
【例2-4】使用requests的head()方法获取指定URL的头部信息。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/50_04.jpg?sign=1739516141-q8ZkhF3mnUSJH4pSw8OQmCTRPho9NuJ1-0-2193a89fd9f1fa131cf339e712facef5)
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/51_01.jpg?sign=1739516141-BAWntUNUFVJN2U1pWtB3TPqYFYmawIlI-0-5f7f81101715718441b69d5d87c94c68)
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库。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/51_02.jpg?sign=1739516141-zUu9FJCy8YA0uXaMi82LWryVrlaEiUU4-0-8d1925c0d966ba1a9a02dea9f24d6df2)
2)使用requests.get()方法获得指定URL。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/51_03.jpg?sign=1739516141-MWDTfM4Pv4IviKhVt6BPoRM0OI0R0QrM-0-e47266fed2cad18ff2304ef7c173436d)
3)查看返回的requests对象属性值。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/51_04.jpg?sign=1739516141-UJ4zeJk3BDfCKfgNZg30FCJAZyjBEWkO-0-de1457a3df5426e6e61999a6b3511058)
4)显示结果如图2-12所示。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/51_05.jpg?sign=1739516141-9YOKqRkusP5UAy9PRvWa9gAR3xHMzuqB-0-4f5e4f56613f1b47214c545c827d36d2)
图2-12 百度页面的属性值