我们这里发送一个请求(推荐用Chrome浏览器),以百度为例,即访问www.baidu.com
单击鼠标右键右键选择“检查”菜单(或者直接按快捷键F12,笔记本原生键盘按住FN+F12)接着点击网络(network)可以看到相关的响应数据(如图)
- 第一列 名称(Name):请求的名称,一般用URL的最后一部分内容作为名称,换句话说也就是客户端访问服务器时返回的一些信息。
- 第二列 状态(Status):响应的状态码,我这里显示的200,代表响应是正常的。通过此状态码,我们可以判断发送的请求是否得到了正常的响应(文章的最后会列出一些常见的状态码表示的含义)
- 第三列 类型(Type):请求的文档类型。我这里为document代表我们请求的是一个HTML文档,内容是一些HTML代码。
- 第四列 发起程序(Initiator):请求源。用来标记请求是由哪个对象或进程发起的。
- 第五列 大小(Size):从服务器下载的文件或请求的资源大小。
- 第六列 时间(Time):从发起请求到获取响应所花的总时间。
接上文,我们单击此条目可看到更详细的信息
常规(General):
- 请求URL(Request URL):即请求的URL(加密状态下网址可能会有变化,这里不展开讨论)
- 请求方法(Request Method):请求的方法(常见的有GET,POST)
细嗦GET和POST的区别:
举个例子,我们在百度中搜索“爬虫”,链接为“https://www.baidu,com/s?wd=爬虫”那么我们的URL中就包含了请求参数“爬虫”,wd意思是关键字,这时我们请求的数据是暴露的,对于一些比较敏感的信息,例如登录账号和密码,我们往往希望他不暴露出来,因此会采用POST请求,即表单形式传输,当然如果我们上传文件时,文件内容比较大的情况下,也会采用POST请求
- 状态码(Status Code):响应的状态码(目前为200,即可正常访问)
- 远程地址(Remote Address):远程服务器的地址和端口
请求标头(Request Headers)讲几个重要的:
- Cookie(Cookies):维持当前的会话,HTTP协议对事物处理是没有记忆能力的,换句话说是无法记录我们之前的信息的,例如我们在输入账号密码登录到某个网站之后,访问一些信息,也就是请求,如果没有Cookie,那么网站会回退到用户登录界面,那么Cookie就是解决这个问题的,他会记录此次会话的登录状态信息,每次在我们刷新或者请求网站的其他界面,都会显示登录状态,这就是Cookie的作用
- User-Agent:就是我们常说的UA,用于让服务器识别客户端的详细信息,在爬虫时,在表头加上此参数就可以伪装成浏览器,也是就UA伪装
响应头(Response Headers) :
- Content-Encoding:用于指定响应内容的编码
- Date:用于标识响应产生的时间
- Server:包含服务器的信息
- Content-Type:文档类型,指定返回的数据类型
响应体(Response):
这里是我们发起请求之后服务器返回给我们的数据,可以看到是HTML格式,后续我们的所有数据提取,解析都是基于响应的数据来的,也是我们爬虫想要获取的最终目标
以下是一些常见的报错状态码信息
200(成功) | 服务器成功返回网页 |
304(未修改) | 自从上次请求后,请求的网页未修改过。服务器返回此响应时,不会返回网页内容。 |
400(错误请求) | 服务器不理解请求的语法。 |
404(未找到) | 请求的网页不存在 |
500(服务器内部错误) | 服务器遇到错误,无法完成请求 |
503(服务不可用) | 服务器目前无法使用(由于超载或停机维护)。 |