第五次学习记录(Python)

2020/12/21 09:07
阅读数 72

学习目标:

Python网络爬虫

学习内容:

1.HTTP的基本原理 2.网页基础 3.Session和Cookie

学习时间:

周一晚上9:00-10:00 周二晚上9:00-10:00 周三晚上9:00-10:00 周四晚上9:00-10:00 周五晚上8:00-10:00

学习产出:

HTTP的基本原理

URI和URL介绍

URI是统一资源标识符,全称为Uniform Resource Identifier,而URL是统一资源定位符,全称为Universal Resource Locator。
举例说明,“http://www.baidu.com/search/detail?z=0&word= 爬虫教程”这是一个百度搜索的一个链接,它是一个URI也是一个URL。用URL/URI来唯一指定它的访问方式,这其中包括访问协议http、访问主机www.baidu.com和资源路径(“/"之后的内容)。通过这样一个链接,可以从互联网上找到这个资源,这就是URL/URI。
因此,笼统地说,每一个URL也是一个URI,但不是每一个URI都是URL。因为URI还包括一个子类,即统一资源名称(Uniform Resource Name, URM),它命名资源但不能能指定如何定位资源。
URI是个纯粹的句法结构,用于指定识别Web资源的字符串的各个不同部分。URL是URI的一个特例,它包含了定位Web资源的足够信息。其他URI,如mailto:cay@horstman.com则不属于定位符,因为根据该标识符无法定位任何资源。


超文本

超文本就是超级文本的缩写,它的英文名称为HyperText。上网打开浏览器所看到的网页就是超级文本解析而成的。其网页源码是一系列的HTML代码,其中包括了各种标签,如img显示图片、div布局、p指定显示段落等。而网页源码就可以成为超文本。

HTTP和HTTPS

在上网的过程中,URL的开头会有http或https,这就是访问资源需要的协议类型。有时还会看见ftp、sftp、smb开头的URL,它们也都是协议类型。在爬虫中,抓取的网页通常是http或者https协议的。
首先,HTTP(Hyper Text Transfer Protocol,超文本传输协议)是用于从网络传输超文本数据到本地浏览器的传输协议,它能保证高效而准确地传输超文本文档。HTTP是由万维网协会和IETE共同合作指定规范。
HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer,超文本传输安全协议)是以安全为目标的HTTP通道,通俗一点讲就是HTTP安全版。即在HTTP下加入SSL层。它是一个URI scheme(抽象标识符体系)。

HTTP的请求过程

客户端浏览器向网站所在的服务器发送一个请求——网站的服务器接收到这个请求后进行解析和处理——返回响应对应的数据给浏览器——浏览器中包含网页的源代码等内容——浏览器再对其进行解析——将结果呈献给用户。
在Chrome浏览器中按【F12】键。
(1)Name:代表的是请求的名称,一般情况下,URL的最后一部分内容就是名称。
(2)Status:响应的状态码,如显示是200则代表正常响应,通过这个状态码可以判断发送了请求之后是否得到了正常的响应,如常见的响应状态码有404,500等。
(3)Type:请求的类型,常见类型有xhr、document等,如这里有一个名称为www.taobao.com的请求,它的类型为document,表示这次请求的是一个HTML文档,响应的内容就是一些HTML代码。
(4)Initiator:请求源,用来标记请求是哪个进程或者对象发起的。
(5)Size:表示从服务器下载的文件和请求的大小。如果是从缓存中取得的资源,则该列会显示from cache。
(6)Time:表示从发起请求到响应请求所消耗的时间。
(7)Waterfall:网络请求的可视化瀑布流。







再来单击某个网站名称的请求,可以看到关于请求更详细的信息。
(1)General部分:Request URL为请求的URL,Request Method为请求的方法,Status Code为响应状态码,Remote Address为远程服务器的地址和端口,Referrer Policy为Referrer判别策略。
(2)Response Headers和Resquest Headers部分:该部分代表着响应头和请求头。请求头中有许多信息,如浏览器标识、Cookie、Host等,这是请求的一部分,服务器会根据请求头内部的信息判断请求是否合法,进而做出对应的响应。

网页基础

网页组成

一个完整的网页大致可以分成三部分:HTML、CSS和JS。
1.HTML(Hyper Text Markup Language,超文本标记语言)是用来描述网页的一种语言。
HTML不是一种编程语言,而是一种标记语言。
2.CSS(Cascading Style Sheet,层叠样式表)是用来控制网页外观的一门技术。


#test{
   
     
width:800px;
height:600px;
background-color:red;
}

大括号前面就是一个CSS选择器,此选择器的意思是选中id为test的节点,大括号内部写的就是一条条的样式规则,例如,width指定了元素的宽,height指定了元素的高,background-color指定了元素的背景颜色。
在网页中一般会有统一定义整个网页的样式规则,并写入CSS文件中(其后缀名称为.css)。在HTML中,只需要用link标签引入写好的CSS文件。
3.JavaScript
JavaScript简称JS是一种脚本语言。
在网页中实现交互和动画效果。
JavaScript也通常以文件形式加载,后缀名为.js。在HTML中通过script标签即可引入。




<script scr="test.js"></script>

综上所述,HTML定义了网页的内容和结果,CSS描述了网页的布局,JavaScript定义了网页的行为。

网页的结构

<!DOCTYPE html>
<html>
	<head>
		<title>网页的标题</title>
	</head>
	<body>
		<p>
		网页显示内容
		</p>
	</body>
</html>

这就是一个最简单的HTML,开头用DOCTYPE定义文档的类型,其次最外层是html标签,其内部是head(网页头)、title(标题)和body(网页体)标签。
head定义网页的配置和引用。CSS和JS一般都是在这里引入的。
title定义了标题,选出现在网页的选项卡中,不会出现在正文中。
body内侧就是网页显示的内容。


Session和Cookie

Session和Cookie是用于保持HTTP连接状态的技术。

Session

1.当用户访问一个服务器的时候,如果服务器启动Session,服务器就要为该用户创建一个Session。若用户发来的请求里面包含了一个Session ID,那么说明该用户之前已经登录过,那么服务器就按照这个Session ID把这个Session在服务器的内存中找出来。
2.若没有Session ID就创建一个。Session ID是唯一的,不重复的,不容易找到规律的字符串,这个Session ID将在本次响应中返回到客户端保存,而保存这个Session ID就是Cookie。

Cookie

1.内存Cookie:由浏览器维护,保存在内存中,浏览器关闭就会消失。
2.硬盘Cookie:保存在硬盘中,有一个过期时间,除非用户手动清理或者到了过期时间。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部