可狱可囚的爬虫系列课程 02:爬虫必会概念

在开始学习爬虫之前,我们有必要详细了解一些概念的基本原理,这对于我们学习爬虫有很大的帮助!

一、URL

在WWW上,每一个信息资源都有统一的且在网上的地址,该地址就叫URL(Uniform Resource Locator,统一资源定位器),它是WWW的统一资源定位标志,就是指网络地址。

二、HTTP 和 HTTPS

HTTP(Hypertext Transfer Protocol)和HTTPS(Hypertext Transfer Protocol Secure)是用于在客户端和服务器之间传输数据的协议。

  1. HTTP是一种在计算机之间传输超文本的协议。它使用的是明文传输,即数据在传输过程中不加密。HTTP通常在Web浏览器和服务器之间传输网页、图片、视频等资源。
  2. HTTPS是对HTTP的安全扩展,它使用安全套接字层(SSL)或传输层安全(TLS)协议进行数据加密和身份验证。通过使用加密技术,HTTPS协议可以保护消息的完整性和机密性,防止信息被窃听和篡改。HTTPS常用于保护敏感信息的传输,例如用户登录凭证、信用卡信息等。

区别在于,HTTP是不安全的,数据传输过程中容易被第三方窃听和篡改;而HTTPS通过加密和身份验证确保了数据的安全性和可信性。

三、HTTP 状态码

状态码是爬虫中的一项重要指标,通过状态码,我们可以了解到爬虫目前运行的一些基本情况,我们列举几个比较重要的状态码:

  • 200:表示请求成功,你可以继续处理服务器返回的数据。
  • 301:表示请求的资源已经永久移动到新的URL,你需要更新你的爬虫代码以获取新的 URL 来使用。
  • 304:表示客户端有缓存的文档并发出了一个条件性的请求,服务器告诉客户端,原来缓存的文档还可以继续使用,没必要再重新加载了。
  • 400:表示请求有语法错误,服务器无法理解,你需要检查请求的参数和格式是否正确。
  • 403:表示请求被服务器拒绝,可能是没有权限访问该资源,或者访问被限制,一般是爬虫被发现,你需要给代码添加一些反反爬虫手段。
  • 404:表示请求的资源不存在,你需要检查请求的URL是否正确,或者服务器上是否存在该资源。
  • 418:表示服务器认为你的请求是一个爬虫,而不是一个正常的用户请求。
  • 500:表示服务器内部错误,这可能是服务器端代码出现了问题,你可以稍后再试,或者联系服务器管理员。
  • 503:表示服务器暂时无法处理请求,通常是由于服务器过载或维护,你可以稍后再试,或者尝试减少请求频率。

四、GET 和 POST

GET 和 POST 都是 HTTP 的请求方法,这两种方法在日常开发中很常用,我们来详细聊聊它们的异同点。

  1. 相同点

    GET 请求和 POST 请求底层都是基于 TCP/IP 协议实现的,使用二者中的任意一个,都可以实现客户端和服务器端的双向交互。

  2. 不同点

    • 约束和规范

      对于 GET 来说,它是用来获取数据的,所以仅仅是从网页获取数据,使用 GET 就是 OK 的;
      对于 POST 来说,主要是用来传递实体的,例如登录操作,要通过 POST 将用户的账号密码传递到服务器。

    • 缓存

      GET请求会被浏览器主动缓存,比如常见的CSS,JS,HTML请求都会被缓存,如果下次传输的数据相同,那么他们就会返回缓存中的内容,以求更快的展示所需要的数据;
      POST请求默认不会进行缓存。

    • 效率

      GET 产生一个 TCP 数据包,而 POST 产生 2 个 TCP 数据包。
      对于GET请求来说,浏览器发送请求,会把http header和data一并发送出去,服务器做出相应200ok。而对于POST而言,浏览器会先发送header,服务器响应100continue,再发送data,服务器再做出响应200ok。因此POST在时间上会消耗比GET要大。当然,并不是所有的浏览器POST都会发送2次包,Firefox就只发送一次。

    • 参数长度限制

      由于GET请求的参数通过url来传递的,而url的长度是有限制的,根据不同的浏览器以及不同的浏览器版本,他们大小的限制也是不同的。对于POST请求来说,参数存放在request body中,它没有大小限制。

    • 回退和刷新

      GET 请求可以直接进行回退和刷新,不会对用户和程序产生任何影响;而 POST 请求如果直接回滚和刷新将会把数据再次提交。

五、Cookie

Cookie,有时也用其复数形式 Cookies,它是一个小型的文本文件,是网站为了辨别用户身份、进行 Session 跟踪而临时或永久存储在用户本地上的数据。
Cookie 由一个名称(Name)、一个值(Value)和其它几个用于控制 Cookie 有效期、安全性、使用范围的可选属性组成。其中:

  1. Name/Value:设置 Cookie 的名称及相对应的值,对于认证 Cookie,Value 值包括Web服务器所提供的访问令牌。
  2. Expires 属性:设置 Cookie 的生存期。有两种存储类型的 Cookie:会话性与持久性。
    • Expires 属性缺省时,为会话性 Cookie,仅保存在客户端内存中,并在用户关闭浏览器时失效;
    • 持久性 Cookie 会保存在用户的硬盘中,直至生存期到或用户直接在网页中单击“注销”等按钮结束会话时才会失效。
  3. Path 属性:定义了 Web 站点上可以访问该 Cookie 的目录。
  4. Secure 属性:指定是否使用 HTTPS 安全协议发送Cookie。使用HTTPS安全协议,可以保护Cookie在浏览器和Web服务器间的传输过程中不被窃取和篡改。
  5. HTTPOnly 属性:这是一种保护 Cookie 的方法,如果 Cookie 中存在这个属性,这个属性就是告诉浏览器这个cookie是不允许其他网站或程序读取的,这就防范了跨站脚本攻击(XSS攻击)。
  6. Domain 属性:指定了可以访问该 Cookie 的 Web 站点或域。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HerrFu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值