3.爬虫基础——网络请求
网络请求
1.网络请求的分类:
网络请求主要有八种,如下表所示:
请求方式 | 描述 |
GET | 发送请求来获得服务器上的资源【比如请求百度的页面】 |
POST | 向服务器提交资源让服务器处理【比如百度云盘上传资源】 |
HEAD | 主要用来检查资源或超链接的有效性或是否可以可达、检查网页是否被串改或更新 |
PUT | 向指定资源位置上上传其最新内容 |
DELETE | 请求服务器删除某资源 |
CONNECT | HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。 |
OPTIONS | 允许客户端查看服务器的性能 |
TRACE | 回显服务器收到的请求,主要用于测试或诊断 |
最常用的是GET和POST请求。
(1)GET请求:一般情况下,发送请求从服务器上获取资源,不会对服务器资源产生任何影响的时候使用GET请求。
(2)POST请求:向服务器发送数据(登录)、上传文件等让服务器处理,会对服务器资源产生影响的时候使用POST请求。
这两个请求是在网站开发中最常使用的两种请求。
(3)GET请求示例:
网址:https://www.baidu.com/
(4)POST请求示例:
网址:https://www.wenjuan.com/
2.请求头常见参数
(1)User-Agent
指浏览器的名称。我们在向别人的服务器发送请求的时候,别人的服务器通过这个参数知道请求是从哪种浏览器发出的,这样就能返回正确的信息。但是如果不设置这个参数的话,我们如果使用Python发送去了请求,别人的服务器【大部分服务器】就知道这个请求时Python发出的,从而不给我们返回正确的数据。因此我们必须设定这个参数。
(2)Referer
表明这个网页是从哪个网站跳转过来的。有些网页只能从特定的链接跳转过来,如果不设置这个参数,有些网页就知道你是通过非浏览器方式试图获取他们的html页面,因此就不返回给你正确的数据。所以这个参数可以用来进行反爬虫设计,我们需要设定这个参数。
(3)Cookie
HTTP协议是无状态的。也就是同一个人在浏览器上发送了两次请求,服务器不知道这两个请求是否来自同一个人。因此这时候就用Cookie来做标识。一般登陆后才能访问的网页,这个时候就需要发送Cookie信息。
【网址示例】
百度页面:https://www.baidu.com/
CSDN博客页面:https://www.csdn.net/
3.常见响应状态码
状态码 | 含义 |
200 | 请求成功 |
301 | 永久重定向,资源(网页等)被永久转移到其它URL 【www.jingdong.com --->>>www.jd.com】 |
404 | 请求的资源(网页等)不存在 |
500 | 内部服务器错误 |
扫描二维码即可参与该课程,解锁更多爬虫知识: