1.安装requests

要安装requests,在终端中输入以下命令即可安装:

 pip3 install  requests

2.发送请求

使用requests发送请求首先需要导入requests模块,然后发送get请求到网站:

 import requests

 r = requests.get("http://www.baidu.com")

发送其他类型的请求:

 import requests

 r = requests.post("http://www.xxx.com", data={"key": "value"})
r = requests.put("http://www.xxx.com/method", data={"key": "value"})
r = requests.delete("http://www.xxx.com/delete")
r = requests.head("http://www.xxx.com/get")
r = requests.options("http://www.xxx.com/get")

3.传递URL参数

如果希望为URL的查询字符串传递数据,Python提供了支持,数据会议键/值对的形式置于URL中,跟在一个问号后面。

 import requests

 r = requests.get("http://www.baidu.com/s", params={"wd": "Python"})

 print(r.url)

 -------输出结果---------
http://www.baidu.com/s?wd=Python

4.状态码

从请求的响应中获取状态码,状态码会展示请求的状态。

如,状态码为200 OK表示请求成功,404 NOT FOUND表示找不到资源,可以通过response对象的.status_code查看返回的状态码:

 In []: import requests

 In []: r = requests.get("http://www.baidu.com")

 In []: r.status_code
Out[]:

4.获取响应内容

我们可以读取服务器响应的内容。

 import requests

 r = requests.get("http://www.baidu.com")
r.encoding = "utf-8"
print(r.text)

说明:r.text返回的是Unicode格式,通常需要转换为utf-8,不然的话,会是乱码,通过使用r.encoding='utf-8',可以避免乱码的问题。

 5.获取二进制响应内容

 import requests

 r = requests.get("http://www.baidu.com")
print(r.content)
print(r.content.decode("utf-8"))

r.content获取二进制数据,可以用来下载视频,图片之类,如果想要看的话,可以使用r.content.decode()解码。

6.获取JSON格式内容

 import requests

 r = requests.get("http://www.xxx.com")
print(r.json())

使用r.json处理json数据。

7.定制请求头

当我们使用如下方式访问知乎时,是无法访问的,需要添加headers信息。

 r = requests.get("https://www.zhihu.com")
r.encoding = "utf-8"
print(r.text.encode("gbk", "ignore").decode("gbk")) ------输出结果------
<html>
<head><title>400 Bad Request</title></head>
<body bgcolor="white">
<center><h1>400 Bad Request</h1></center>
<hr><center>openresty</center>
</body>
</html>

想要访问就必须添加headers信息:

 import requests

 headers = {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko"}
r = requests.get("https://www.zhihu.com", headers=headers) r.encoding = "utf-8"
print(r.text.encode("gbk", "ignore").decode("gbk"))

 8.发送post请求

 import requests

 data = {
"name": "zhangsan",
"age": ""
} r = requests.post("http://httpbin.org/post", data=data) print(r.text)

9.响应

 # -*- coding:utf- -*-
import requests r = requests.get("http://www.baidu.com")
# 输出请求页面的状态码
print(r.status_code)
# 输出请求页面的所有请求头信息
print(r.headers)
# 输出请求的cookies信息
print(r.cookies)
# 输出请求的地址
print(r.url)
# 打印请求的历史记录
print(r.history)

最新文章

  1. C#操作mysql数据库
  2. [No00005D]如何高效利用GitHub
  3. js Dialog 去掉右上角的X关闭功能
  4. 【001:转载 ubuntu下: 建立本地SVN服务器】
  5. Padding Oracle Attack的一些细节与实现
  6. MFC一个类访问另一个类成员对象的成员变量值
  7. 关于JS闭包,作者不详(转)
  8. svn搭建以及可能遇到的问题解决方案
  9. 设计模式之Composite模式(笔记)
  10. 字符编码笔记:ASCII,Unicode和UTF-8【转载】
  11. 关于SQL IO的一些资料
  12. LeetCode 661. Image Smoother (图像平滑器)
  13. 如何使用 VS2015 进行远程调试?
  14. 排队时延(Queuing delay)
  15. UOJ#7. 【NOI2014】购票 | 线段树 凸包优化DP
  16. python 图片
  17. PyQt5学习笔记14----初识pyqt多线程操作
  18. 理解C#的Lock语法意义
  19. java 里定义的方法参数 (final String... args)
  20. springboot学习入门之五---开发Web应用之JSP篇

热门文章

  1. Mybatis系列(四)映射文件
  2. Open XML 检索 EXCEL
  3. linux下静态库和动态库一些东西
  4. webService调用模式比较
  5. 24-从零玩转JavaWeb-包装类、自动装箱、自动拆箱
  6. webmagic使用
  7. duck typing
  8. no newline at the end of file
  9. iOS静态库的制作与引用
  10. LoadRunner简明教程