网页中flash数据抓取(什么是HTML?网页的基本结构是什么意思??)
优采云 发布时间: 2021-12-15 15:15网页中flash数据抓取(什么是HTML?网页的基本结构是什么意思??)
首先,在浏览器地址栏(或点击一个超链接)开始HTTP工作
建立连接后,客户端向服务器发送请求:
请求首行:请求方式 请求协议 协议版本
\r\n
请求头 键值组成的
\r\n\r\n
如果是post请求的话,还有一个请求体
请求体
formData
服务器收到请求后,响应:
响应首航 : 协议类型和版本 响应状态码 状态码描述符
\r\n
响应头
\r\n\r\n
响应体
在客户端浏览器接受响应后,它会在用户浏览器中显式呈现它。
然后客户端和服务器断开连接。
二、网页基础知识
网页的组成可以分为三个部分: HTML CSS JavaScript。HTML 负责语义,CSS 负责样式,Javascript 负责交互和行为。
HTML:
HTML 是一种用于描述网页的语言。它的全称是Hyper Text Markup Language,即超文本标记语言。
我们可以在Chrome浏览器中打开一个网址,右击review元素或者按F12打开开发者模式,切换到Elements标签页可以看到网页的源码。
新手教程:
w3csool:
CSS:
CSS,全称叫做Cascading Style Sheets,即Cascading Style Sheets。“堆叠”是指当 HTML 中引用了多个样式文件并且样式发生冲突时,浏览器可以根据堆叠顺序对其进行处理。“样式”是指网页中文字大小、颜色、元素间距、排列等的格式。
JavaScript:
JavaScript,简称JS,是一种脚本语言。HTML 和 CSS 一起使用,只为用户提供静态信息,缺乏交互性。我们可能会在网页中看到一些交互和*敏*感*词*效果,比如下载进度条、提示框、轮播图等,通常都是JavaScript的功劳。
网页的基本结构:
DOCTYPE html>
HelloWorld
HelloWorld
主体内容
在一般网页格式中,第一行标识 html 版本。两个 html 包裹了头部和身体。head通常会放一些配置和一些资源引用,body是网页的主要内容。
节点之间的关系
在网页中,组织页面的对象呈现为树状结构。用来表示文档中对象的标准模型称为DOM,即文档对象模型(简称DOM)。
表示和处理 HTML 或 XML 文档的常用方法。
DOM 实际上是一种以面向对象的方式描述的文档模型。DOM 定义了表示和修改文档所需的对象、这些对象的行为和属性以及这些对象之间的关系。您可以将 DOM 视为页面上数据和结构的树形表示,但当然页面可能不会在这棵树中实现。
节点:根据 DOM,HTML 文档中的每个组件都是一个节点。
DOM 的规定如下:
整个文档是一个文档节点
每个 HTML 标签都是一个元素节点
HTML 元素中收录的文本是一个文本节点
每个 HTML 属性都是一个属性节点
注释属于一个注释节点
节点级别:
HTML 文档中的所有节点形成一个文档树(或节点树)。HTML 文档中的每个元素、属性、文本等都代表树中的一个节点。树从文档节点开始,并继续从那里扩展分支到树最底层的所有文本节点。
比如and的父节点是节点,文本节点“Hello world!”的父节点。是
节点。
大多数元素节点都有子节点。例如,一个节点有一个子节点:node。该节点还有一个子节点:文本节点“DOM Tutorial”。
当节点共享同一个父节点时,它们就是兄弟节点(sibling nodes)。例如,
和
它们是兄弟,因为它们的父节点都是节点。
详情请参考DOM百度百科:
三、 爬虫基本原理
网络爬虫(也称为网络蜘蛛)是一种程序或脚本,它按照一定的规则自动抓取万维网上的信息。
获取网页->提取信息->保存数据
获取网页
爬虫的第一个工作就是获取网页的源代码,然后从中提取出我们想要的数据。
在python中,提供了很多库来帮助我们实现这个操作,比如Urllib、Requests等,我们可以使用这些库来帮助我们实现HTTP请求操作,Request和Response可以用类提供的数据结构来表示库,得到After Response,只需要解析数据结构的Body部分就可以得到网页的源码,这样我们就可以用程序来实现获取网页的过程了。
行
在我们获取到网页源代码后,接下来的工作就是对网页源代码进行分析,从中提取出我们想要的数据。最常用的方法是使用正则表达式,但正则表达式比较复杂。在 Python 中,如 BeautifulSoup、PyQuery、LXML 等,使用这些库可以高效地从源代码中提取网页信息。
保存数据
提取信息后,我们可以将数据保存在本地以备后续使用。保存方式有很多种,如TXT、Json,也可以保存在数据库中,如Mysql、MangoDB等。
动态渲染页面的爬行
现在越来越多的网页使用js来构建网页,所以我们经常使用requests来获取网页的源码和浏览器看到的区别,使用requests,我们只能获取静态的html源码,他不会帮助我们加载js文件,我们可以使用Selenium、Splash等库来模拟JavaScript渲染,这样我们就可以抓取JavaScript渲染的网页内容。