【Python爬虫学习笔记1】网络协议及请求基础

http协议与https协议

HTTP协议(全称为HyperText Transfer Protocol,超文本传输协议),是发布和接收HTML页面的方法,其服务端口号为80。

HTTPS协议为HTTP协议的加密版本,其在HTTP下加入了SSL层,服务端口号为443。

URL结构解析

URL(Uniform Resource Locator,统一资源定位符),用于从互联网上获取某个资源,其组成格式如下:scheme://host:port/path/?query-string=xxx#anchor

scheme:代表访问协议类型,如http、https和ftp等。

host:域名,比如 “cn.bing.com”。

port:端口号,访问一个网站时浏览器默认使用80端口。

path:查找路径,比如 “https://www.imooc.com/course/list”,后面的course/list就是path。

query-string:查询字符串,比如 “https://cn.bing.com/search?q=python”,后面的q=python就是查询字符串。

anchor:锚点,用于页面定位。

浏览器请求一个url,浏览器会对url进行编码——除英文字母,数字和部分符号外,其他的全部使用百分号与十六进制码值进行编码。如在Chrome中地址栏输入“https://cn.bing.com/search?q=博客园”,则会自动解析为“https://cn.bing.com/search?q=%E5%8D%9A%E5%AE%A2%E5%9B%AD”

http请求发送过程

首先,用户在浏览器地址栏中输入URL并回车后浏览器会向HTTP服务器发送一个Request请求,服务器接收到请求后会返回一个Response文件对象给浏览器。此后浏览器分析Response中的HTML,同时发现其中所引用的其他文件(如Image、Js、CSS等),浏览器再次向服务器发送这些文件的request请求以下载文件。当所有文件成功下载完毕后,浏览器便可以将网页完整地构造显示出来。

如下为访问微软Bing主页的请求:

image_thumb[3]

请求方法

在HTTP协议中,定义了八种请求方法(参见下表)

   方法                                              描述
GET请求页面,并返回页面内容

HEAD

类似于GET请求,只不过返回的响应zho那个没有具体的内容,用于获取报头
POST大多用于提交表单或上传文件,数据包含在请求体中
PUT从客户端向服务器传送的数据取代指定文档中的内容
DELETE请求服务器删除指定的页面
CONNECT把服务器当作跳板,让服务器代替客户端访问其他网页
OPTIONS允许客户端查看服务器的性能
TRACE回显服务器收到的请求,主要用于测试或诊断

其中,GET与POST请求较为常用。一般情况下,GET仅用于获取数据,POST用于上传数据,但有时为应对反爬机制,需要用POST请求代替GET请求。

常用请求头参数

在HTTP协议中,请求头用来说明要传递给服务器使用的附加信息,如下为访问拉勾网的请求头。

image_thumb[6]

其中较为重要的参数有User-Agent、Referer 和 Cookie。

User-Agent:一个特殊字符串头,可以使服务器识别客户使用的操作系统及版本、浏览器及版本等信息。在爬虫中可以设置此信息来伪装浏览器以反-反爬虫。

Referer:用于标识请求是从哪个页面来的。这个一般也可以用来做反爬虫技术——只有从指定页面请求才给予响应。

Cookie:HTTP协议无状态的,即服务器在两次连续的请求中不会保存是哪个用户发送的请求,而为了维持前后会话完整性,可以在发送请求时通过附加存储在用户本地的Cookie来让服务器识别出用户并查出当前状态。

响应

响应,由服务器返回给客户端,其中包括三部分内容——响应状态码、响应头和响应体。

1.响应状态码

用于表示服务器的相应状态,常用状态码有200(成功,服务器正常返回数据)、 301(永久重定向) 、302(临时重定向)、400(请求错误,服务器无法解析该请求)、403(禁止访问,服务器拒绝此请求)、404(未找到,服务器找不到请求的页面)、500(服务器内部错误)。

2.响应头

包含一些服务器对请求的应答信息,如Content-Type(应答的文档类型,如text/html返回HTML文档、image/jpeg返回图片)、Server(服务器信息,如名称、版本号等)、Set-Cookie(设置Cookies)、Expires(指定响应的过期时间)等。

如拉勾网响应头信息:

image_thumb[11]

3.响应体

表示响应的正文数据,如网页的HTML代码、图片的二进制数据等。爬虫请求网页后要解析的内容就是响应体内容。

转载于:https://www.cnblogs.com/Unikfox/p/9649149.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/253495.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

快速上手SpyGlass——基本流程

SpyGlass,这是一个很强大的RTL验证级工具。它不仅仅能检查sdc的错误,还能做以下各种检查:Low Power, DFT,CDC(Cross Domain Check)。 一、基本概念 1、方法学相关 Rule: 是SpyGlass 进行RTL分析的最小单…

快速上手SpyGlass——CDC检查

随着技术的发展,数字电路的集成度越来越高,设计也越来越复杂。很少有系统会只工作在同一个时钟频率。一个系统中往往会存在多个时钟,这些时钟之间有可能是同步的,也有可能是异步的。如果一个系统中,异步时钟之间存在信…

数字后端——低功耗单元库

在之前的文章中,介绍了低功耗设计物理实施的方案: 数字后端——低功耗设计物理实施_沧海一升的博客-CSDN博客_低功耗设计低功耗设计方案所涉及到的物理实施相关内容https://blog.csdn.net/qq_21842097/article/details/119918312 为了实现例如门…

NandFlash详述

1. 硬件特性: 【Flash的硬件实现机制】 Flash全名叫做Flash Memory,属于非易失性存储设备(Non-volatile Memory Device),与此相对应的是易失性存储设备(Volatile Memory Device)。这类设备,除了Flash,还有其他比较常见…

史上最全的MySQL高性能优化实战总结!

1.1 前言 MySQL对于很多Linux从业者而言,是一个非常棘手的问题,多数情况都是因为对数据库出现问题的情况和处理思路不清晰。在进行MySQL的优化之前必须要了解的就是MySQL的查询过程,很多的查询优化工作实际上就是遵循一些原则让MySQL的优化器…

低功耗设计——基于UPF进行设计

UPF, 统一电源格式UPF(Unified Power Format)是新思(Synopsys)公司通用的电源格式,是一组标准的类Tcl 语言的集合,用来描述芯片设计中的低功耗意图(Low-Power Design Intent)。 使用UPF 的语言,可以描述供电…

用公众号获取 任意公众号文章列表 软件还是免费

用公众号获取 任意公众号文章列表 软件还是免费还不快点下载 下载 地址 https://pan.baidu.com/s/1jI44Wjs转载于:https://www.cnblogs.com/wx85437898/p/7488590.html

CentOS7时间设置问题

本地安装一个VMWare player虚拟机客户端,并安装了Linux CentOS7 Basic Web Server系统,时区在安装时已经选择了Asia/Shanghai,但是安装完成后,时间和当前外部的时间不一致,如下图 图一 图二 图三 后经搜索发现,由于未开…

低功耗设计——功耗估算

根据在功耗分析的过程中是否有输入向量的提供,功耗估算方法可以分为仿真的方法(Simulative)和非仿真的方法(Non-simulative): 仿真的方法是根据用户所提供的大量输入向量来对电路进行模拟,利用…

Deep Learning(深度学习)学习笔记整理系列三

Deep Learning(深度学习)学习笔记整理系列 声明: 1)该Deep Learning的学习系列是整理自网上很大牛和机器学习专家所无私奉献的资料的。具体引用的资料请看参考文献。具体的版本声明也参考原文献。 2)本文仅供学术交流&…

Conformal ECO 流程介绍

之前听说过一句话,没有修过ECO的人生是不完整的。最近就给我整得再次完整了。。。。。。 最近赶项目,RTL freeze之后,后仿发现出了bug(还好拦下来了,不然头更大),于是做了一次function ECO&…

Zabbix discoverer processes more than 75% busy

原文发表于cu:2016-06-22 Zabbix discoverer processes more than 75% busy原因及处理。 一.现象 配置了discovery任务后,zabbix dashboard 告警如下: Zabbix discoverer processes more than 75% busy 二.原因 1. 配置…

图像紫边消除(depurple)

图像紫边广泛存在于目前的手机摄像头、数码相机、监控摄像头等数字成像系统所得图像中,当我们使用这些设备在逆光、大光圈等条件下拍摄时,所得图像的局部区域,特别是高反差区域(亮暗对比反差很大的图像区域,比如天空、灯管与物体相接的边缘)会比较容易观察到紫边,解决图…

Swift 性能相关

起初的疑问源自于「在 Swift 中的, Struct:Protocol 比 抽象类 好在哪里?」。但是找来找去都是 Swift 性能相关的东西。整理了点笔记,供大家可以参考一下。 一些疑问 在正题开始之前,不知道你是否有如下的疑问: 为什么说 Swift 相…

HTTPS 路径配置

1: 首先安装 fiddlercertmaker.exe 文件2:Tools -> HTTPS 3: Connections 勾中Allow remote computer to connect转载于:https://www.cnblogs.com/eason-d/p/7492177.html

CMOS图像传感器——相位对焦

之前介绍了许多自动对焦的方案 自动对焦方法学习_沧海一升的博客-CSDN博客自动对焦的各类方法学习介绍https://blog.csdn.net/qq_21842097/article/details/121373263 在里面提到了遮蔽像素相位检测法,原理上算是相位检测法(Phase Detection Auto Focus,PDAF)的一种。…

Spring Cloud Config 和Spring Cloud Bus实现配置中心

2019独角兽企业重金招聘Python工程师标准>>> Spring Cloud是很多组件的集合,Spring将常用的技术框架进行包装和整合,如mybatis zookeeper rabbitmq redis等等,还有一些科技公司贡献出来的一些经过生产环境验证的组件如奈飞公司贡献…

CMOS图像传感器——闪烁(flicker)现象

一、概述 闪烁(Flicker),通常发生在室内场景,曝光时间设置如果不是光源能量周期的整数倍,则图像不同位置处积累的信号强度不同,并呈周期性变化,这是单帧图像的情况。在视频序列上,如果满足一定条件,视频会出现条纹模式在垂直方向上缓慢移动。 二、形成原因 1、光源 …

CMOS图像传感器——图像传感器噪声

图像传感器噪声取决于图像传感器的制作工艺、内部结构及内部补偿技术等原因,噪声反应了图像传感器的内部特性。CMOS图像传感器基本原理见: CMOS图像传感——概述_沧海一升的博客-CSDN博客_cmos图像传感器CMOS图像传感器基本介绍https://blog.csdn.net/qq_21842097/article/d…

TI Davinci DM6441嵌入式Linux移植攻略——UBL移植篇

目录(?)[] 一DM6441的Boot过程简介二DM6441的UBL移植 CCS文件夹Common文件夹GNU文件夹 移植DDR2移植Nand Flash其它 声明:本文参考网友zjb_integrated的文章《TI Davinci DM6446开发攻略——UBL移植》和《DAVINCI DM365-DM368开发攻略——U-BOOT-2010.12及UBL的移…