以上是HTTP所有的方法,但常见的方法有以下:
3)HTTP的请求响应模型
HTTP协议永远都是客户端发起请求,服务器回送响应。
这样就限制了使用HTTP协议,无法实现在客户端没有发起请求的时候,服务器将消息推送给客户端。
注意:HTTP协议是一个无状态的协议,同一个客户端的这次请求和上次请求是没有对应关系。
4)HTTP的状态码
Http状态码能告诉我们当前请求响应的状态,通过状态码判断和分析服务器的运行状态,以便更好的进行下一步的操作。
5)工作流程
一次HTTP操作称为一个事务,其工作过程可分为四步:
- 首先客户机与服务器需要建立连接,只要单击某个超级链接,HTTP的工作开始。
- 建立连接后,客户机发送一个请求给服务器;请求方式的格式为:统一资源标识符(URL)、协议版本号,后边是MIME信息包括请求修饰符、客户机信息和可能的内容。
- 服务器接到请求后,给予相应的响应信息;其格式为一个状态行,包括信息的协议版本号、一个成功或错误的代码,后边是MIME信息包括服务器信息、实体信息和可能的内容。
- 客户端接收服务器所返回的信息通过浏览器显示在用户的显示屏上,然后客户机与服务器断开连接。
如果在以上过程中的某一步出现错误,那么产生错误的信息将返回到客户端,有显示屏输出。
这些过程由HTTP自己完成,我们等待信息显示就可以了。
二、Urllib、Requests库
这两个库都建议新手能够熟练掌握,在Python爬虫中使用频率非常高。
下方也有分享安装教程资源,有需要的点击进群找群管理获取即可↓↓
<Python学习交流群 安装教程资源获取>
Urllib库
Urllib是Python中请求url连接的官方标准库,在Python2中主要为urllib和urllib2,在Python3中整合成了urllib。
1)主要包含以下4个模块
- urllib.request:用于打开和阅读URL
- urllib.error:包含由引发的异常urllib.request
- urllib.parse:用于解析URL
- urllib.robotparser:用于解析robot.txt文件
2)urllib.request.urlopen()
模块定义了有助于在复杂环境中打开URL(主要是HTTP)的函数和类-基本身份验证和摘要身份验证,重构定向,Cookie等。
语法结构
urllib.request.urlopen(url,data = None,[ timeout,] *,cafile = None,capath = None,cadefault = False,context = None)
语法详解
- url:传入的对象可以是url也可以是一个request的对象;
- data:data必须是一个直接要发送搭服务器的其他数据的对象,如果没有data数据的话可以为None,也可以不写。
- timeout:以秒为单位制定用于组织链接尝试之类的操作超时;
3)urllib.openurl:返回对象的方法
# 设置一个url对象
url = "百度一下,你就知道"
#发送请求,打开url
up = urllib.request.urlopen(url)
print(type(up))
#返回对象
>>> <class 'http.client.HTTPResponse'>
上面我们可以看出返回的对象是HTTPResponse类型的,下面一起