Python网络爬虫入门基础 _HTTP请求与响应【2】

问题引入:

网络爬虫爬取的对象的是Web,我们将它称之为服务端,而爬虫就是本地的客户端。那么要怎样才能使客户端与服务端建立连接并爬取数据呢?这时就需要利用HTTP了

什么是HTTP?

1.HTTP:超文本传输协议(Hypertext Transfer Protocol,简称:HTTP)它是一个简单的请求-响应协议,架构运行在TCP之上。这套协议定义了客户端可发送什么样的请求(Request)信号和服务器可返回什么样的响应(Response)。
它的作用是规定www服务器与浏览器之间信息传递规范,是二者共同遵守的协议。

2.当用户使用浏览器输入网址访问目标网站时,需要向网站服务器发送HTTP请求,通过发送请求即可从服务器获取页面内容的响应。但实际上服务器只会发送网页代码,我们所看到的页面效果是经过浏览器渲染而成的

在这里插入图片描述

请求类型:

1.HTTP请求类型有八种:(GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT)
2.但我们常用的只有两种**:GET**和POST。

  • GET : 用于获取数据,一般用于搜索排序和筛选之类的操作。
  • POST :用于将数据发送给服务器,一般用于修改和写入数据,比如注册一个表单账号。

3.因为网络爬虫是爬取数据,获取数据用到的是GET,所以POST很少被用于爬虫。

HTTP请求的组成

  1. HTTP请求由三部分组成:(请求行;请求头;请求体
  • 请求行:请求方法、请求路径、HTTP协议及版本组成。
  • 请求头:包含Host,User-Agent,Accept(用于告诉服务器一些相关的信息)
  • 请求体:向服务器发送的附加信息

在这里插入图片描述

  • 请求行

    • GET:请求类型,也可以为POST
    • User/info:需要访问的URL根路径(你需要访问的服务器资源根URL)
    • HTTP/1.1:HTTP传输协议及1.1版本
  • 请求头

    • Host:主机域名,也就是网站域名,结合请求头的路径即可得到一个完整的路径
    • User-Agent:用于告诉服务器客户端相关的信息(如请求是通过什么工具发出的,工具类型和版本是什么)。
    • Accpet:用于告诉服务器客户端想要接收的资源类型
  • 请求体

    • {…}:用于传给服务器任意数据(POST方法为空)
  1. 我们也可以通过浏览器的调试功能来查看这些参数,以百度为例,向百度的服务器发送请求。快捷键F12打开调试,刷新,打开NetWork,随便找个文件,即可看到请求数据,

在这里插入图片描述

HTTP响应的组成:

  1. 当客户端浏览器发送以上请求后,服务器会根据请求内容响应给浏览器相关数据。
  2. 响应由三大部分组成:(状态行;请求头;请求体
  • 状态行:包含了协议版本,状态码和状态信息
  • 请求头:包含Host,User-Agent,Accept(用于告诉服务器一些相关的信息)
  • 请求体:向服务器发送的附加信息
    在这里插入图片描述
  • 状态行

    • HTTP/1.1:HTTP传输协议及1.1版本
    • 200:状态码为200
    • OK:和状态码相对应,表示服务器请求成功
  • 请求头

    • Date:表示的是服务器响应的时间
    • Content-Type:服务器所返回内容的类型及编码格式
  • 请求体

    • 为服务器要给客户端响应的内容。一般是HTML代码,即网页源码
  1. 通过调试,我们同样可以查看服务器的响应
    在这里插入图片描述

总结

  1. 了解HTTP请求和响应的原理后,将会对网络爬虫有了跟多的看法,对后期的学习也有很大的帮助。
  2. 下期将利用Python发送一个爬虫请求。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Almango

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

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

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

打赏作者

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

抵扣说明:

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

余额充值