使用requests
一、基本用法
1、准备工作
安装request库。
pip install request
2、实例引入
request库中以GET方式请求网页的方法就是get()方法
import requests
r = requests.get('https://www.baidu.com/')
print(type(r))
print(r.status_code)
print(type(r.text))
print(r.text)
print(r.cookies)
'''
运行结果:
<class 'requests.models.Response'>
200
<class 'str'>
<!DOCTYPE html>
<!--STATUS OK--><html> <head><meta http-equiv=content-type content=text/html;charset=utf-8><meta http-equiv=X-UA-Compatible content=IE=Edge><meta content=always name=referrer><link rel=stylesheet type=text/css href=https://ss1.bdstatic.com/5eN1bjq8AAUYm2zgoY3K/r/www/cache/bdorz/baidu.min.css><title>ç™¾åº¦ä¸€ä¸‹ï¼Œä½ å°±çŸ¥é“</title></head> <body link=#0000cc> <div id=wrapper> <div id=head> <div class=head_wrapper>
</div> </div> </div> </body> </html>
<RequestsCookieJar[<Cookie BDORZ=27315 for .baidu.com/>]>
'''
这里调用的get()方法和urllib的urlopen()方法操作相同。得到了一个Response对象,然后分别输出Response的类型、状态码、响应体类型、内容、cookies。
通过运行结果发现,它返回类型是:requests.models.Response
响应体的类型是字符串str,cookies的类型是:RequestsCookieJar。
其他类型的请求依然可以用一句话来完成。
r = requests.post('http://httpbin.org/post')
r = requests.put('http://httpbin.org/post')
r = requests.delete('http://httpbin.org/post')
r = requests.head('http://httpbin.org/post')
r = requests.options('http://httpbin.org/post')
3、GET请求
-
基本实例
首先构造一个最简单的GET请求,请求的连接为http://httpbin.org/get 该网站会判断如果客户端发起的是GET请求的话,它返回相应的请求信息。
import requests r = requests.get('http://httpbin.org/get') print(r.text) ''' 运行结果: { "args": {}, "headers": { "Accept": "*/*", "Accept-Encoding": "gzip, deflate", "Host": "httpbin.org", "User-Agent": "python-requests/2.22.0", "X-Amzn-Trace-Id": "Root=1-601a6499-085939cc227cef8e10512ec9" }, "origin": "101.27.236.254", "url": "http://httpbin.org/get" } '''
返回结果中包含请求头、URL、IP等信息。
那么,对于GET请求,如果要附加额外的信息。一般怎么添加呢?
可以直接写成:
requests.get('http://httpbin.org/get?name=germey&age=22')
还可以这么写:
import requests data = { 'name': 'germey', 'age': 22 } r = requests.get('http://httpbin.org/get', params=data) print(r.text) ''' 运行结果: { "args": { "age": "22", "name": "germey" }, "headers": { "Accept": "*/*", "Accept-Encoding": "gzip, deflate", "Host": "httpbin.org", "User-Agent": "python-requests/2.22.0", "X-Amzn-Trace-Id": "Root=1-601a660f-267a57e67038f33a6a9f8471" }, "origin": "101.27.236.254", "url": "http://httpbin.org/get?name=germey&age=22" } '''
通过运行结果可以判断,请求链接自动被构造成了:http://httpbin.org/get?name=germey&age=22
另外网页返回的数据实际上是个str类型的数据,但是格式是JSON格式的。如果想直接解析返回结果,需要得到一个字典格式的话,可以使用json()方法:
import requests r = requests.get('http://httpbin.org/get') print(type(r.text)) print(r.json()) print(type(r.json(