![大数据采集与爬虫](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=1736542225-LeDEDEDiW35pUuvXkupCXKnW2JDjMjIr-0-df1634d274365a3c18e339552975ef14)
图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=1736542225-JdPZOwE1OIBE9b9uaSvVt4WtooyBAqvM-0-163c139a3b6e62f40ccb84aff71d1564)
图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=1736542225-Z4IbTF2QklKNbfA18l0spLVm1qWerkgu-0-aad0ee157b4ff371e801fff835bb8e28)
图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=1736542225-5uq4hWMN95vfX2V318Tn3JLWlmH0bRRO-0-9088730625faf558d3b91266215cd7e5)
图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=1736542225-2NbJaLU3uZ7wCT4Lec9Ukjljh3c3Gw1s-0-64ba4377d5570d517a2a21cc8326f6b2)
(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=1736542225-92E4HkB7E4W6oJCz3G4x5e98wvDUipcM-0-c327afa24bacac9df9f0a79f6dc8330a)
(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=1736542225-NhBLI7j1wY7sPBpNx9HulAh2R1N8WoC6-0-911e3370ece6ff56118d734482eb316a)
(4)head()
requests.head()是指使用HEAD方法获取页面的头部信息。
【例2-4】使用requests的head()方法获取指定URL的头部信息。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/50_04.jpg?sign=1736542225-9oSE4auUYDQUyxcsnXIFwViNwc7Zx8QP-0-dd4b4f183b1d22fc823253d66bf12602)
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/51_01.jpg?sign=1736542225-bZMR8uwdfu0pAy2hcvv4o4IxykULBifY-0-be6611d87a6bdc7632c5866d636b2ce7)
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=1736542225-5VJ9rZAJ2foWoJjuv70P5MP7hgttDc7F-0-fb97883d6ca59d94f571439b59319a45)
2)使用requests.get()方法获得指定URL。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/51_03.jpg?sign=1736542225-n6sjIlI3LhoRoTIZPp6cPkLE6lh09tz4-0-75bbfdb399d3335686c448d735f7b0b5)
3)查看返回的requests对象属性值。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/51_04.jpg?sign=1736542225-YK99gnDrH7KR8vWcjQi7n6UgTWYvzfoo-0-2c18dccccd3b33aaa025a5b6d6ddeb38)
4)显示结果如图2-12所示。
![](https://epubservercos.yuewen.com/F5B70F/17977546101607006/epubprivate/OEBPS/Images/51_05.jpg?sign=1736542225-ocV01uIMVHcXWVv8VXOEFq7shOkeZ2cp-0-72dcc8b64555c19710bba0fabf57b924)
图2-12 百度页面的属性值