如何抓取不允许检查网页元素的 flutter/dart 动态渲染器网站

问题描述 投票:0回答:1

我正在废弃一个网站,该网站有许多列表项和按钮 Web 元素内容通过 flutter/dart 网站的动态渲染显示。 我尝试估算按钮位置并使用

pyautogui
单击各种元素,但当有很多按钮/元素需要查找时,此解决方案将不起作用。

在下面的附件enter image description here中分享我正在废弃的动态网页的源代码。

任何人都可以在正确的方向上提供帮助吗?预先感谢。

python flutter dart selenium-webdriver
1个回答
0
投票

Flutter 不会渲染为常规 HTML 元素,而是通过自定义 WebGL 引擎(更多详细信息请参阅文档)将 Flutter UI 转换为实际的像素数据。因此,依赖 DOM 的常用网络抓取技术根本行不通。在我看来,只有几种(某种程度上)可行的方法可以废弃基于 Flutter 的应用程序:

  1. 使用您选择的浏览器的开发人员工具分析网络活动,并从那里对您需要的数据进行逆向工程。如果数据是动态的,那么只要数据发生变化,Flutter 应用程序本身就不太可能发生变化,而是必须从某个地方提取信息。如果您仔细分析应用程序完成的请求,您可能会用您想要的东西到达端点。
  2. 如果Flutter应用程序嵌入到站点中,则相关数据可能会在加载过程中传递到应用程序中。阅读Flutter Web 嵌入如何工作,识别目标站点中的加载脚本,并检查加载过程中是否传递了任何有用的内容可能会很有用。
  3. 如果您真的很绝望,请记住您可以将画布拉为图像并应用一些图像处理魔法来遍历应用程序以获取您需要的信息。这已经超出了我的能力范围,但技术上是可行的。
  4. 最后,考虑到 Flutter 在 Web 编译过程中并没有太多混淆,它只是缩小了应用程序。这意味着,从技术上讲,您可以对整个应用程序进行逆向工程,您可以自动下载应用程序 -> 执行反编译脚本 -> 提取所需的信息。关于如何使用 Flutter 执行此操作的知识或工具并不多,即使使用更流行的框架,我也会认为这是一项艰巨的任务,因此我不能推荐这个想法。 这是一篇关于该主题的有趣文章

祝你好运!

© www.soinside.com 2019 - 2024. All rights reserved.