位置: 编程技术 - 正文

python爬虫入门教程--快速理解HTTP协议(一)(python爬虫入门教程非常详细)

编辑:rootadmin

推荐整理分享python爬虫入门教程--快速理解HTTP协议(一)(python爬虫入门教程非常详细),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:python爬虫快速入门,python爬虫入门教程pdf,python爬虫从入门到精通,python爬虫从入门到精通,python爬虫入门教程pdf,python爬虫入门教程pdf,python爬虫入门教程pdf,python爬虫入门教程非常详细,内容如对您有帮助,希望把文章链接给更多的朋友!

前言

爬虫的基本原理是模拟浏览器进行 HTTP 请求,理解 HTTP 协议是写爬虫的必备基础,招聘网站的爬虫岗位也赫然写着熟练掌握HTTP协议规范,写爬虫还不得不先从HTTP协议开始讲起

HTTP协议是什么?

你浏览的每一个网页都是基于 HTTP 协议呈现的,HTTP 协议是互联网应用中,客户端(浏览器)与服务器之间进行数据通信的一种协议。协议中规定了客户端应该按照什么格式给服务器发送请求,同时也约定了服务端返回的响应结果应该是什么格式。

只要大家都按照协议规定方式发起请求和返回响应结果,任何人都可以基于HTTP协议实现自己的Web客户端(浏览器、爬虫)和Web服务器(Nginx、Apache等)。

HTTP 协议本身是非常简单的。它规定,只能由客户端主动发起请求,服务器接收请求处理后返回响应结果,同时 HTTP 是一种无状态的协议,协议本身不记录客户端的历史请求记录。

HTTP 协议是如何规定请求格式和响应格式的呢?换言之,客户端按照什么格式才能正确发起 HTTP 请求呢?服务端按照什么格式返回响应结果客户端才能正确解析?

HTTP 请求

HTTP 请求由3部分组成,分别是请求行、请求首部、请求体,首部和请求体是可选的,并不是每个请求都需要的。

请求行

请求行是每个请求必不可少的部分,它由3部分组成,分别是请求方法(method)、请求URL(URI)、HTTP协议版本,以空格隔开。

HTTP协议中最常用的请求方法有:GET、POST、PUT、DELETE。GET 方法用于从服务器获取资源,%的爬虫都是基于GET请求抓取数据。

请求 URL 是指资源所在服务器的路径地址,比如上图的例子表示客户端想获取 index.html 这个资源,它的路径在服务器 foofish.net 的根目录(/)下面。

请求首部

python爬虫入门教程--快速理解HTTP协议(一)(python爬虫入门教程非常详细)

因为请求行所携带的信息量非常有限,以至于客户端还有很多想向服务器要说的事情不得不放在请求首部(Header),请求首部用于给服务器提供一些额外的信息,比如 User-Agent 用来表明客户端的身份,让服务器知道你是来自浏览器的请求还是爬虫,是来自 Chrome 浏览器还是 FireFox。HTTP/1.1 规定了种首部字段类型。HTTP首部字段的格式很像 Python 中的字典类型,由键值对组成,中间用冒号隔开。比如:

因为客户端发送请求时,发送的数据(报文)是由字符串构成的,为了区分请求首部的结尾和请求体的开始,用一个空行来表示,遇到空行时,就表示这是首部的结尾,请求体的开始。

请求体

请求体是客户端提交给服务器的真正内容,比如用户登录时的需要用的用户名和密码,比如文件上传的数据,比如注册用户信息时提交的表单信息。

现在我们用 Python 提供的最原始API socket 模块来模拟向服务器发起一个 HTTP 请求

HTTP 响应

服务端接收请求并处理后,返回响应内容给客户端,同样地,响应内容也必须遵循固定的格式浏览器才能正确解析。HTTP 响应也由3部分组成,分别是:响应行、响应首部、响应体,与 HTTP 的请求格式是相对应的。

响应行

响应行同样也是3部分组成,由服务端支持的 HTTP 协议版本号、状态码、以及对状态码的简短原因描述组成。

状态码是响应行中很重要的一个字段。通过状态码,客户端可以知道服务器是否正常处理的请求。如果状态码是,说明客户端的请求处理成功,如果是,说明服务器处理请求的时候出现了异常。 表示请求的资源在服务器找不到。除此之外,HTTP 协议还很定义了很多其他的状态码,不过它不是本文的讨论范围。

响应首部

响应首部和请求首部类似,用于对响应内容的补充,在首部里面可以告知客户端响应体的数据类型是什么?响应内容返回的时间是什么时候,响应体是否压缩了,响应体最后一次修改的时间。

响应体

响应体(body)是服务器返回的真正内容,它可以是一个HTML页面,或者是一张图片、一段视频等等。

我们继续沿用前面那个例子来看看服务器返回的响应结果是什么?因为我只接收了前个字节,所以有一部分响应内容是看不到的。

从结果来看,它与协议中规范的格式是一样的,第一行是响应行,状态码是,表明请求成功。第二部分是响应首部信息,由多个首部组成,有服务器返回响应的时间,Cookie信息等等。第三部分就是真正的响应体 HTML 文本。

至此,你应该对 HTTP 协议有一个总体的认识了,爬虫的行为本质上就是模拟浏览器发送HTTP请求,所以要想在爬虫领域深耕细作,理解 HTTP 协议是必须的。

总结

标签: python爬虫入门教程非常详细

本文链接地址:https://www.jiuchutong.com/biancheng/372364.html 转载请保留说明!

上一篇:用生成器来改写直接返回列表的函数方法(生成器作用)

下一篇:Python操作使用MySQL数据库的实例代码(python mypy)

  • 计提工资时个税怎么处理
  • 银行存款属于其他货币资金核算内容吗
  • 飞机发票和行程单可以一起开吗
  • 2019年所得税季度增值税怎么报
  • 多交的所得税如何做分录
  • 一般纳税人财务报表月报还是季报
  • 优惠券抵扣账务处理流程
  • 免费送客户礼品的文案
  • 递延所得税负债是什么意思
  • 餐饮店投资入股注意事项
  • 长期股权投资成本法初始计量
  • 以下属于财政收入的形式有
  • 所有的固定资产都需要计提折旧吗
  • 免费送试用装的话术
  • 金税盘维护费抵税会计分录
  • 小规模纳税人当月超过500万的部分怎么申报
  • 固定基金会计分录怎么处理
  • 机器设备进项税额是否要分期抵扣
  • 滞留发票产生的原因主要包括哪些?
  • 怎么通过合并弥补亏损,使得利益最大化?
  • 利润表所得税费用计算公式
  • 在建工程的折旧费计入什么科目
  • 银行手续费做账漏掉
  • 用于职工集体福利的外购货物可以抵进项税额吗
  • 国外发票可以报销吗
  • 消费税的计算公式推导过程
  • 处置股权后相应债权坏账损失怎么处理?
  • 库存商品进货价怎么算
  • 转结本月工资
  • 员工劳务报酬分录
  • 管理费用处理方法包括
  • 映泰主板bios设置硬盘启动
  • QQPCTray.exe是什么进程 QQPCTray.exe文件介绍
  • PHP:Memcached::replaceByKey()的用法_Memcached类
  • 解决的英文
  • php curl_init
  • 退款后发票如何查询
  • 东京塔的意义
  • 企业获得境外咨询费
  • uniapp微信小程序上传文件
  • Zinnowitz pier on Usedom island in the Baltic Sea, Germany (© Frank Günther/Getty Images)
  • 公允模式投资性房地产出售
  • php对象的概念
  • 逻辑回归模型
  • 预缴与申报
  • 企业没有ca怎么登陆公积金账户
  • 增值税专票三联都丢了写情况说明可以吗
  • 安装和使用蓄能器应注意哪些问题
  • mongodb 入门
  • 递延收益与预收收益区别
  • 管理费用处理的是
  • mysql创建临时表并赋值
  • 公司注销未分配利润如何处理
  • 收到单位借款如何入账
  • 进项税额转出期限是多久
  • 有限公司股权转让需要股东会决议吗
  • 出口退税企业退税流程
  • 宣传费税前扣除什么意思
  • 企业要怎样才能用到便宜的天然气
  • 营销活动开什么发票
  • 现金流量表补充资料怎么理解
  • 营改增后建筑业增值税税率
  • mysql5.7慢查询
  • xp字体无法安装
  • win8 联网
  • w10预览版新功能
  • linux系统检测工具
  • bios中怎么设置显卡
  • Win10 Mobile RS2预览版14943上手视频曝光
  • windows8关机在哪里
  • win7系统怎么关闭屏幕保护
  • cocos2dx吸蓝效果实现opengl绘制
  • 未知类型的文件怎么打开
  • python 数据结构库
  • dom教学
  • python smtplib模块详解
  • 江苏囯税电子
  • 税务局取消办税人员
  • 2022年房产税减免政策疫情
  • 济南税务局投诉电话多少
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设