前言
Requests: 让 HTTP 服务人类,唯一的一个非转基因的 Python HTTP 库,人类可以安全享用;
Requests继承了urllib2的所有特性,能满足当前网络的需求,支持Python 2.6—3+下完美运行。github开源地址:https://github.com/kennethreitz/requests
一、环境安装
1.利用python的 pip 安装:pip install request
C:UsersAdministrator>pip install request Collecting request Using cached https://files.pythonhosted.org/packages/f1/27/7cbde262d854aedf217061a97020d66a63163c5c04e0ec02ff98c5d8f44e/request-2019.4.13.tar.gz Requirement already satisfied: get in d:path_pythonlibsite-packages (from request) (2019.4.13) Requirement already satisfied: post in d:path_pythonlibsite-packages (from request) (2019.4.13) Requirement already satisfied: setuptools in d:path_pythonlibsite-packages (from request) (39.0.1) Requirement already satisfied: query_string in d:path_pythonlibsite-packages (from get->request) (2019.4.13) Requirement already satisfied: public in d:path_pythonlibsite-packages (from query_string->get->request) (2019.4.13) Installing collected packages: request Running setup.py install for request ... done Successfully installed request-2019.4.13 WARNING: You are using pip version 19.2.3, however version 19.3.1 is available. You should consider upgrading via the 'python -m pip install --upgrade pip' command.
2.验证request是否安装成功了,cmd输入python,再import request,没有报错就是成功了
C:UsersAdministrator>python Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 17:00:18) [MSC v.1900 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import request >>>
二、发送get请求
小编用的是pycharm,只是写代码提高效率,当然只要是python语法用什么来写都可以,比如用文本,后缀为.py它就可以运行。
1.直接导入 request 库,get 某个 url 就可以访问了,小编get:https://www.cnblogs.com/gsxl/ ,然后用print它的返回信息。
2.rq表示一个请求后返回的响应值,这里我直接用rq.text,查看响应正文内容了。
3.这里还有可以查看状态码、 响应头等等,稍后我们介绍。
import requests url = 'https://www.cnblogs.com/gsxl/' rq = requests.get(url) print(rq.text)
三、发送get请求带 params参数
1.实现在百度搜索“广深小龙”,我们说一下带参数的,也有另一种可不带参数(这种的话其实参数在url上了)
2.在浏览器内输入:https://www.baidu.com/s?wd=广深小龙 ,打开能正常搜索出来,确认没有问题后我们再写代码
3.定义kw有一个键值对(类似json,这里是字典),kw = {‘kw’:‘广深小龙’},我们只需要在get请求上加一个 params=kw 即可,如下:
四、还可以获取更多的响应对应值,比如我要打印响应码,就直接print(rq.status_code )想知道更多,我们可以直接看它的源码,还有以下部分:
import requests kw = {'wd': '广深小龙'} rq = requests.get("http://www.baidu.com/s?", params=kw) print(rq.status_code) # 状态码 print(rq.text) # raw 响应文本 print(rq.headers) # 响应头部...等等
rq.status_code #响应状态码 rq.content #自动解码 rq.headers #响应头 rq.json() # json解码器 rq.url # 获取url rq.encoding # 编码格式,一般设置=‘utf-8’ rq.cookies # 获取cookie rq.raw #原始响应体 rq.text #响应正文
1.开着 fiddler 的时候,在pycharm里面发送请求就会报错,我们把 fiddler 停止(F12)或者关闭就可以了!
注意这里有2个坑:
2.响应数据出现乱码解决办法:print(rq.content.decode("utf-8"))
欢迎来QQ交流群:482713805