Flutter WebView:从呈现的 URL 中检索所有完全生成的 html(类似于“检查元素”)
Posted
技术标签:
【中文标题】Flutter WebView:从呈现的 URL 中检索所有完全生成的 html(类似于“检查元素”)【英文标题】:Flutter WebView: Retrieve ALL fully generated html from a rendered URL(Similar to "Inspect Element") 【发布时间】:2020-11-16 09:21:37 【问题描述】:我正在尝试从this webpage 获取事件的标题并将它们放入列表中:
Since using HTTP did not get the fully generated html,我决定尝试使用flutter_webview_plugin
:
-
在隐藏的 web 视图上加载所需的 URL
提取完全生成的 HTML
解析 HTML 以获得我需要的标题
我正在使用此代码来加载 webview:
flutterWebviewPlugin.launch(
"https://www.volunteermatch.org/search/?l=Long%20Grove,%20IL%2060047,%20USA",
hidden: true);
flutterWebviewPlugin.onStateChanged.listen((viewState) async
if (viewState.type == WebViewState.finishLoad)
flutterWebviewPlugin
.evaljavascript("document.documentElement.outerHTML")
.then((html)
print(html);
//some code to parse html
flutterWebviewPlugin.close();
);
);
问题是,即使在 webview 加载完成后使用 JavaScript 代码检索 HTML 也不会给我与在 Safari 上“检查元素”相同的 HTML,而且没有标题也在其中。我错过了什么?
【问题讨论】:
看起来您正在抓取网页。请查看下面的帖子itnext.io/write-your-first-web-scraper-in-dart-243c7bb4d05 @NileshSenta 感谢您的回复,我会查看链接。 【参考方案1】:好吧,现在我觉得很傻。
由于我在 iPhone 上运行该应用程序,因此我使用 Xcode 检查print(html)
的输出。出于某种原因,Xcode 不会打印出所有的 html
字符串:
Xcode 只留下一个<...>
(右下角用红色圈出)并决定不打印其余部分。
【讨论】:
运气好用这个吗?我仍然得到像 http.get() 这样的第一个 html,而不是我在 webview 中看到的完整 html @Saifallak 基本上我的问题只是一个 Xcode 打印问题,而我使用的代码实际上确实得到了所有的 html。以上是关于Flutter WebView:从呈现的 URL 中检索所有完全生成的 html(类似于“检查元素”)的主要内容,如果未能解决你的问题,请参考以下文章
Flutter url_launcher 无法启动 webview 短谷歌表单链接
如何在 WebView Flutter 中允许 mailto 和 tel URL 方案?
flutter 安卓webview 无法加载http解决方案net::ERR_CLEARTEXT_NOT_PERMITTED