网页渲染的基本过程 页面渲染的过程

来源:州教师博客

原地址:https://zmister.com/archives/702.html

一、前言

在数据收集的过程中,我们遇到的很多网页都是采用单页面渲染的方式。例如:

后端直接返回HTML请求前端数据接口进行渲染;对于第一种机制渲染的网页,我们可以直接使用BeautifulSoup或者正则表达式或者xpath来定位解析元素。

对于第二种机制渲染的网页,我们可以直接抓取数据包找到对应的数据接口,然后使用json模块解析检索数据。

大多数网页要么使用第一种机制,要么使用第二种机制。但是,也有一些特殊情况。页面上的数据由JS模板呈现,调用了两个数据接口。第一数据接口包含大部分数据字段,第二数据接口只包含一个动态核心字段。如果不仔细分析,你可能会在第一个数据接口中不停地寻找存在于第二个数据接口中的字段数据,但永远也找不到。让我们回顾一下这个数据定位过程。

二、分析页面

首先,我们来到目标页面,我们需要的数据位于下图中:

c2e2914a0522474c9377a48fa4afdfaa?_iz=31825&from=article.detail&x-expires=1702423516&x-signature=8j1m2Q0%2FXkQY8i%2BVK5XOCT7aGeE%3D&index=0

可以发现这是一种表型数据结构。按照常规思路,我们先检查网页的源代码,判断其数据是否被后端直接渲染为HTML:

0774979a2d954052b573bb84191e011a?_iz=31825&from=article.detail&x-expires=1702423516&x-signature=nKcrWzJpkNgb8%2FcWsPuzqgRvcN4%3D&index=1

源代码中的几行代码显示,这个页面的数据是由前端获取并渲染的,所以我们需要从网页的响应中找到相应的接口。

三、寻找数据接口

回到目标页面,按键盘“F12”键打开浏览器调试窗口(以Chrome为例),切换到“网络”选项卡,点击“XHR”,刷新当前页面。此时,我们将获得请求目标页面时生成的所有XHR请求:

e498be7e25a14fc3a65021c55f3b7bfd?_iz=31825&from=article.detail&x-expires=1702423516&x-signature=66J%2FjZzmeXqmma2P2cUAXiP05jI%3D&index=2

经过仔细分析,我们似乎找到了目标数据对应的数据接口:

d5172c4a52c344f9ad59b10303a68672?_iz=31825&from=article.detail&x-expires=1702423516&x-signature=3G1VK3z%2BNZwkFhkU%2BuJvSXw2FBI%3D&index=3

接口的json字段中的数据基本可以对应到页表中的数据,但是还有一个字段找不到,那就是status字段。我该怎么办?秉承“页面上的所有数据都会在响应中返回”的信念,我们搜索网页响应的资源。在浏览器调试窗口中,切换到“Source”选项卡并选择“search all file”:

77fc500a0c1b4b60ad502c4687744893?_iz=31825&from=article.detail&x-expires=1702423516&x-signature=0OYHiccAGPLkKZXFNlJa%2BkeDMoQ%3D&index=4

找到了处理这个数据接口的JS文件。

四、分析JS

我们格式化并恢复这个JS,发现状态栏的文本被一个json映射:

8412179693c345a6956109bf3af4bc98?_iz=31825&from=article.detail&x-expires=1702423516&x-signature=h1AUz025v6z8CdBRPHc98%2FOHFuw%3D&index=5

然后我们回到直接数据接口,继续搜索表示状态值的字段,但是仍然没有结果。于是我回到just JS,发现里面包含了JS的渲染模板(JS文件的第一行)。我们提取它,重新格式化并恢复它,得到页面数据的HTML模板:

c9305b51014d48c5a661de654d8b1d59?_iz=31825&from=article.detail&x-expires=1702423516&x-signature=drFT6s0qirzkss7oWDW%2BXlpw9WM%3D&index=6

在这个JS渲染模板中,我们又有了一个重要的发现:状态栏中的数据默认是-的,不是由界面的数据直接渲染,而是由td标签的id属性通过viewId字段和adgroupid字段渲染。

class=first cell id=' j _ report _ { { viewid } } { { ad groupid } } _ displayonlinestate '-/TD \ n通过查看定位元素,我们发现它们在HTML结构中的显示如下图所示:

2663c8273f954dd5a51c20da8d52b2b8?_iz=31825&from=article.detail&x-expires=1702423516&x-signature=wMftD2rSxK3GgSURFZbw3v5MsG0%3D&index=7

根据经验,我们判断displayOnlineState的值是州名,我们继续搜索响应的XHR内容。果然,我们在另一个界面中找到了displayOnlineState的对应值:

c21e1e25662649a69ef446eb703c8fcd?_iz=31825&from=article.detail&x-expires=1702423516&x-signature=QbBJ%2F%2BTO8DzzcUbYNZO3ST5abiA%3D&index=8

并且可以对应于前一状态中的json键-值对。这样就可以找到页面中所有数据的来源,然后请求并解析相应的接口。

页面渲染的过程

Team Render在Cinema 4DRelease 15中取代了NET Render,从此成为4D影院内置的网络渲染功能。它允许将动画的帧和静止图像的桶分发到网络上的多台计算机。借助Team Render for Cinema 4D,您可以快速轻松地设置渲染场。

今天就来学习一下Team Render的使用教程吧。

团队渲染是4D影院中网络渲染的概念,它使用点对点通信来分配渲染任务。由于中央服务器没有瓶颈,渲染场景所需的资产可以更快地到达各个客户端,从而显著加快动画和静止帧的网络渲染速度。

Team Render Server适用于较大的工作室,结合了传统客户端-服务器架构的优点,允许用户通过Web界面和Team Render之间的分布式数据交换来控制所有渲染作业。Team Render Server允许您直接上传、监控和控制网络渲染作业,并查看来自服务器和所有客户端的日志状态消息。

设置团队渲染遵循4D电影院的标准流程,您必须遵循以下步骤:

这些是基本步骤。关于如何安装和使用Team Render的所有细节可以通过马辰的Cinema 4D帮助获得,并且可以在网上找到许多教程,例如:

Cineversity官方教程:在本教程系列中,您将学习如何安装、配置、使用Team Render并排除故障。在本入门教程中,您将了解Team Render许可和各种实现,这些实现允许您从Cinema 4D内部或通过连接到中央服务器的基于浏览器的用户界面来管理Team Render。你会知道各个团队渲染技术的优缺点,以及针对各种用户的推荐策略。

以下是帮助您使用第三方渲染器设置团队渲染的说明列表。让我们了解团队渲染以及它如何与电晕渲染器,阿诺德和红移。

团队渲染是Cinema 4D版本15及更高版本中的内建网络渲染功能,它允许将动画帧和静止图像桶分发到网络上的多台电脑。凭借以上所有突出的优势,您一定会发现自己是4D电影院和团队渲染项目的完美选择。

渲染电脑的硬件配置要求很高。对于最近两年显卡和CPU的涨价,购买一台高配电脑的预算更高,性价比也低。最好尽量把渲染放到云端进行渲染,这样比较省力,速度也比较快。

着色云渲染是一个完全拥抱公有云的云渲染平台。它与阿里云、AWS、华为云、京东云、腾讯云等公有云有着强大的合作,这意味着Shaded Cloud可以灵活分配各大云计算平台的资源进行超级计算,可以满足各种用户的不同硬件需求。

明暗云支持多角度任务的同时渲染,高效便捷。着色云采用高性能服务器,稳定可靠,可以满足用户对海量应急渲染的需求。

更多资讯,持续关注我,让你轻松告别渲染烦恼。

好玩下载

日服版lol手游链接下载:lol日服手机下载

2023-9-27 19:31:58

好玩下载

零花钱大作战「零花钱大作战攻略」

2023-9-27 1:36:18

购物车
优惠劵
搜索