【网络信息内容安全】网络信息内容获取——主动获取

发布于:2025-06-19 ⋅ 阅读:(14) ⋅ 点赞:(0)

1 万维网概述

1.1 万维网概述

万维网WWW(World Wide Web)是一个大规模的、联机式的信息储藏所,并非某种特殊的计算机网络。
访问方法:链接;提供分布式服务

万维网是分布式超媒体(hypermedia)系统:

  • 超文本hypertext系统的扩充,超文本:多个信息源链接成,是万维网的基础
  • 超媒体与超文本文档内容不同
  • 分布式系统:信息分布在整个互连网上,每台主机上的文档独立管理

万维网的工作方式:客户端/服务器方式

  • 客户端程序:浏览器
  • 服务器程序:在万维网文档所在的主机上运行,称为万维网服务器
  • 客户端程序向服务器程序发出请求,服务器程序向客户端程序送回客户需要的万维网文档
  • 在一个客户程序主窗口上显示出的万维网文档称为i而页面(page)
    在这里插入图片描述
    万维网需要解决的问题
    在这里插入图片描述

1.2 统一资源定位符URL

用于资源定位,每个资源由URL唯一标识

在这里插入图片描述

1.3 超文本传输协议HTTP

HTTP是应用层协议,定义通信的格式和规则,是万维网上能可靠地交换文件的重要基础。
使用面向连接的TCP/QUIC作为传输层协议,保证数据的可靠传输
HTTP本身是无连接的;
HTTP是无状态的,没有记忆能力

1 HTTP/1.0

HTTP/1.0每请求一个文档要重新建立新的TCP连接,即非持续连接
在这里插入图片描述

2 HTTP/1.1

HTTP/1.1使用持续连接

  • 非流水线方式
    在这里插入图片描述

  • 流水线方式
    在这里插入图片描述

3 HTTP/2

HTTP/2改进:

  • 多路复用:允许在单个TCP连接上同时发送多个请求和接收多个响应。这意味着不再需要等待前一个请求的响应完成,后续请求可以立即发送。解决队头阻塞
  • 二进制分帧:HTTP/2将HTTP消息分割为更小的二进制帧,并对每个帧进行标识和优先级排序。这样可以更灵活地传输和处理HTTP消息,不再受到HTTP/1.1中的消息顺序限制。
  • 头部压缩
  • 服务器推送:支持服务器主动推送资源给客户端

4 HTTP/3

HTTP/3改进:
TCP改为QUIC
在这里插入图片描述
HTTP/3网站访问流程
在这里插入图片描述
更安全的HTTPS:结合HTTP协议和SSL/TLS协议,对内容进行加密

代理服务器

代理服务器(proxy server)又称万维网高速缓存,它代表浏览器发出HTTP请求
在这里插入图片描述
代理服务器会将源点服务器的内容保存在本地存储中,若有新的请求该内容,直接返回。

HTTP报文结构:

  • 请求报文
    在这里插入图片描述
    请求报文的常见方法:
    在这里插入图片描述
    示例:
    在这里插入图片描述

  • 响应报文
    在这里插入图片描述
    状态码3位数,分为5类:

    • 1xx:通知信息,如请求收到了或正在处理
    • 2xx:成功
    • 3xx:重定向
    • 4xx:客户端差错,如请求中有错误语法或不能完成
    • 5xx:服务器差错

    常见的三种状态行:

    • HTTP/1.1 202 Accepted
    • HTTP/1.1 400 Bad Request
    • HTTP/1.1 404 Not Found

Cookie

万维网使用Cookie跟踪在HTTP服务器和客户端之间传递的状态信息
在这里插入图片描述
Cookie的实现原理
在这里插入图片描述
基于Cookie机制实现需身份认证才可访问信息请求
在这里插入图片描述

总结HTTP

在这里插入图片描述

1.4 万维网的文档

页面制作的标准语言HTML(HyperText Markup Language),后缀.html或.htm。
在这里插入图片描述
一些其它标签:

  • <img>图片
  • <a>链接,<a href="http://example.com>,链接可以是远程也可以是本地

CSS层叠样式表(Cascading Style Sheets)为HTML定义布局。

1.5 万维网的信息检索系统

搜索的程序——搜索引擎,分为2类:全文检索搜索、分类目录搜索
在这里插入图片描述
垂直搜索引擎:针对特定领域/人群
元搜索引擎:搜索引擎之上的搜索引擎

2 网络爬虫

爬虫:请求网站并提取数据的自动化程序。
在这里插入图片描述

如何请求

Request中包含:请求方式、请求URL、请求头、请求体
可能需要的字段:
在这里插入图片描述
Response中包含:响应状态、响应头、响应体

模拟浏览器发请求:Requests

如何提取

如何提取(解析)—— 解析的局部的文本内容会在标签对应的属性中存储

  • 定位指定标签
  • 提取标签或标签对应属性中存储的数据

可以直接处理、正则表达式匹配、BeautifulSoup、Xpath

动态网页内容获取

动态网页主题内容及内嵌URL信息完全封装与网页源文件中的脚本语言片段内,无法直接使用HTML标记匹配方法提取网页主题内容等。抓取动态网页的关键是分析网页数据获取和跳转逻辑

1 利用HTML DOM树提取动态网页内的脚本语言片段

在这里插入图片描述

2 基于浏览器模拟

使用Selenium库模拟浏览器完成抓取,直接运行在浏览器中,浏览器按照脚本做出点击、输入、打开、验证等操作。包括三个关键内容:自动化测试代码、浏览器驱动、浏览器。三者关系如下:
在这里插入图片描述

爬虫检测技术

  • 通过IP与访问间隔等请求模式的识别
  • 通过Header内容
  • 通过Cookie信息
  • 通过验证码
  • 通过客户端是否支持js分析
    在这里插入图片描述
  • 页面资源是否加载
  • 是否通过Robots协议
    通常在<域名>/robots.txt,告知网络爬虫可以抓取的页面
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    Robots协议是建议但非约束性,爬虫可以不遵守,但存在法律风险

反反爬:

  • 使用代理服务器或云主机,不使用真实IP
  • 使用Selenium模拟访问,构造合理的Headers,包括User-Agent和Hosts
  • 使用不同的线程记录访问的信息,为每个线成保存Cookies

爬虫URL抓取策略:

WEB页面抽象为一张有向图,遍历图
在这里插入图片描述

  • 深度优先遍历DFS:A-F-G E-H-I B C D
  • 宽度优先遍历BFS:A-B-C-D-E-F G H I
  • 反向链接数:一个网页被其它网页链接指向数量
  • 大站优先:待下载页面数多的优先
  • Partial PageRank:计算已下载与待抓取的URL每个页面的PageRank

3 网页排名

PageRank基于从许多优质的网页链接过来的网页,必定还是优质网页的回归关系,判定网页的重要性
两个假设:

  • 数量假设:指向的入链(in-links)越多,网页重要性越高
    在这里插入图片描述

  • 质量假设:一个质量高的网页指向(out-links)一个网页,说明被指网页质量高
    在这里插入图片描述

2. PageRank 的计算公式

PageRank 是通过一个迭代算法计算的。假设网页集合为 P = { P 1 , P 2 , … , P n } P = \{P_1, P_2, \dots, P_n\} P={P1,P2,,Pn},每个网页 P i P_i Pi 有一个 PageRank 值 P R ( P i ) PR(P_i) PR(Pi)。PageRank 的计算公式如下:

P R ( P i ) = ∑ P j ∈ B P i P R ( P j ) L ( P j ) PR(P_i) = \sum_{P_j \in B_{P_i}} \frac{PR(P_j)}{L(P_j)} PR(Pi)=PjBPiL(Pj)PR(Pj)

其中:

  • P R ( P i ) PR(P_i) PR(Pi) 是网页 P i P_i Pi 的 PageRank 值。
  • B P i B_{P_i} BPi 是指向网页 P i P_i Pi 的网页集合。
  • L ( P j ) L(P_j) L(Pj) 是网页 P j P_j Pj 的出链数量(即 P j P_j Pj 链接到的网页数量)。

用转移矩阵/马尔可夫矩阵表示: P = M × V P=M \times V P=M×V
在这里插入图片描述
存在问题:

  • Dead Ends:只有入链没有出链,PR趋于0
    在这里插入图片描述
    解决方法:修正M,将无出链的设置为平均指向其它节点
    在这里插入图片描述

  • Spider Traps:自指向的节点,PR趋于1
    在这里插入图片描述
    解决方法
    引入随机跳转(Random Teleport)的概念,即在迭代过程中以一定的概率 β \beta β随机跳转到其他网页,而不是只通过链接跳转
    在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到