首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

flutter_webview获取正在显示的页面的html,如何从get浏览页面中获取HTML?

Flutter WebView是一个用于在Flutter应用程序中显示Web内容的插件。要获取正在显示的页面的HTML,可以使用WebView的evaluateJavascript方法来执行JavaScript代码,然后通过回调函数获取HTML内容。

以下是一个示例代码:

代码语言:txt
复制
import 'package:flutter/material.dart';
import 'package:flutter_webview_plugin/flutter_webview_plugin.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'WebView Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  final flutterWebViewPlugin = FlutterWebviewPlugin();

  @override
  void initState() {
    super.initState();
    flutterWebViewPlugin.onStateChanged.listen((WebViewStateChanged state) {
      if (state.type == WebViewState.finishLoad) {
        flutterWebViewPlugin.evalJavascript('''
          javascript:(function() {
            var html = document.documentElement.innerHTML;
            window.flutter_inappwebview.callHandler('htmlContent', html);
          })();
        ''');
      }
    });
  }

  @override
  void dispose() {
    flutterWebViewPlugin.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return WebviewScaffold(
      url: 'https://example.com',
      appBar: AppBar(
        title: Text('WebView Demo'),
      ),
      withJavascript: true,
      withLocalStorage: true,
      hidden: true,
    );
  }
}

在上面的示例中,我们使用了flutter_webview_plugin插件来创建一个WebView,并在WebView加载完成后执行JavaScript代码。JavaScript代码中的document.documentElement.innerHTML可以获取到整个页面的HTML内容。然后,我们通过window.flutter_inappwebview.callHandler将HTML内容传递给Flutter应用程序。

请注意,为了使上述示例代码正常工作,您需要在pubspec.yaml文件中添加flutter_webview_plugin插件的依赖。

关于Flutter WebView的更多信息和用法,请参考腾讯云的相关文档和示例代码:

希望以上信息对您有所帮助!如果您有任何其他问题,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

直播带货小程序源码,商品详情如何获取html图片

在搭建直播带货小程序源码过程,需要为商品构建详情,而商品图片是要通过html获取并展示到本地,那么这个过程是如何实现?...一些方法 2、添加点击事件监听和android与html交互接口: mWebView.addJavascriptInterface(mOpenImageJavaInterface, "imagelistener...");     } }); 3、本地利用正则解析html图片集合: } /*返回html图片集合*/ public static List returnImageUrlsFromHtml...    if(index==-1){         index=0;     }     showGalleryDialog(index); } 5、WebView加载url,并调整WebView图片大小...("about:blank", html, mimeType,             encoding, ""); } 以上就是搭建直播带货小程序,商品详情如何获取html图片并在本地展示过程

1.3K20

Flutter 与 iOS 原生 WebView 对比

测试手机:iPhoneX 系统:iOS12.0 加载速度对比 测试网页打开速度,只需要获取 WebView 在开始加载网页和网页加载完成时时间戳,时间戳差即为打开网页时间。...> UIWebView > flutter_webview 占用内存对比 这里查看内存使用是 Xcode debug session memory,首先看之前测试时,连续打开十次新浪内存情况...: 接着我们在看一下打开淘宝首页内存情况 图上可以看出,WKWebView 在内存方面有很大优势啊,UIWebView 内存是真的伤啊,然后 debug 看了一下 flutter_webView...结论:内存 WKWebView > flutter_webview > UIWebView HTML5 兼容性对比 可以在 html5test 浏览兼容性进行评分,通过测试发现得分分别如下: 因为...如果是混编项目中,因为它被包了一层,所以页面加载上存在一定劣势,所以混编项目中仍然推荐使用 WKWebView。

1.6K20

Python爬虫---爬取腾讯动漫全站漫画

发现一最多可以展示20章漫画目录,要想更换显示还需要点击章节名上面的选项卡来显示其他章节地址 接下来就需要我们来检查网页元素想办法来获取章节地址了,同样右击检查元素 在看到了源代码后,我发现了一个非常惊喜事情...,腾讯动漫是以js异步加载来显示图片,要想获取页面的全部图片,就必须要滑动滚动条,将全部图片加载完成再进行提取,这里我选择selenium模块和chromedriver来帮助我完成这些操作。...in comic_list: #拼接成为漫画目录网址 comic_url = url + str(comic) #漫画目录提取信息 url_data = requests.get...,证明无界面浏览器确实打开了网页 browser.get_screenshot_as_file(str(page_name) + ".png") #获取当前页面源码...,证明无界面浏览器确实打开了网页 browser.get_screenshot_as_file(str(page_name) + ".png") #获取当前页面源码

6.1K30

用Python爬取COS网页全部图片

后在内容搜索“王者荣耀”(ctrl+f),寻找该页面的关系 因为可以找到当前网页数据,所以这个网页是一个静态网页,那么这个网页URL地址就是地址导航栏内容,即:http://www.win4000...转化为Selector对象,Selector对象具有xpath方法,能够对转化数据进行处理 (1)获取当前页面的每一个URL地址 可以看见a标签详细地址,点进去后发现当前相册每一个地址都是包裹在...:', file_name)#打印出正在下载图片名称 (4)观察每一个相册页面的地址,发现规律 for url in range(1, int(page_num) + 1): # 构建相册翻页...URL地址,并拼接 (5) 发送详情请求,解析详情图片url地址 response_3 = requests.get(all_url, headers=headers).text html_3...,1开始到6(即第5)结束 print('=======================正在爬取第{}页数据====================='.format(page))

73940

三分钟让你了解什么是Web开发?

这在服务器上作为HTML文件保存,可以使用web浏览器查看。浏览服务器请求文件,服务器端起它并关闭连接。 HTML是一种用于创建web页面的标准标记语言。...换句话说,它是一个带有标记简单文本文件,帮助浏览器找到如何显示信息方法。...样本DOM树(来源:Wikimedia Commons) 当在浏览呈现HTML页面时,浏览器将HTML下载到本地内存,并创建一个DOM树来显示屏幕上页面。...HTML表单中最常用方法是GET和POST。 服务器端脚本可以读取浏览器通过POST发送值,然后处理它或将其存储到文件或数据库。...我们需要根据所请求blog post ID读取数据库数据,然后显示标题和内容字段内容。 显示单个博客文章高级伪代码: 数据库读取数据以获取博客文章ID。

5.7K30

Python每日一练(21)-抓取异步数据

在我们平时浏览网页过程,可以发现有很多网站显示页面数据并不是一次性服务端获取,有一些网站,如图像搜索网站,当滚动条向下拉时,会随着滚动条向下移动,有更多图片显示出来。...2.3 渲染页面 渲染页面主要是指将从服务端获取响应数据以某种形式显示在Web页面的某些元素上,如下面的代码将数据以 li 节点形式添加到 ul 节点后面。...如果直接在浏览显示 index.html 页面,如下图所示: ?...逆向工程 在上面已经模拟实现了一个异步装载页面,这里以这个程序为例进行分析,如果对这个程序实现原理不了解,那么应该如何得知当前页面的数据是异步加载呢?以及如何获取异步请求 URL 呢?...接下来就可以用代码完成此信息爬取了,但是发现,该页面的信息是较少,所以我们要进入到详情,进行详情页数据爬取,这样又有一个问题诞生了?要进入到详情,详情URL在哪呢?

2.7K20

Ajax在jQuery应用--jQuery基础知识点(5)

Ajax技术并不局限于Web动态页面,在普通静态HTML页面同样可以实现! 1....} 2. load(url,[data],[callback])方法实现Ajax功能 load()方法可以很快地加载数据到页面,但如需对获取数据进行处理,必须在先插入页面,...GET方式不适合传递数据量较大数据 GET方式请求历史信息会在浏览缓存,有一定安全风险 9. serialize()序列化表单,简化参数传值方式 将所有选择DOM元素转换成能随...: "login.html", //登录静态 dataType: "html", success: function(HTML) { //返回页面内容 $("#frmUserLogin...前者是当请求开始执行时触发,往往用于编写一些准备性工作,如提示“正在获取数据...”字样;后者是当请求结束时触发,在这一事件,常常与前者配合,说明请求最后进展状态,如将显示正在获取数据...

1.7K31

外行学 Python 爬虫 第六篇 动态翻页

面的实现过程通过解析网页连接来获取元件详细信息页面,解析出相关数据。...在实际页面中发现有很多分页现象,通过前面的方式仅能获取第一内容,无法获取第二内容,这就造成无法爬取所有的页面,最终是获取数据比网站上实际数据小多。 ?...在上面的图片中可以看到数据被分成了很多页面显示,实际点击下一按钮,发现地址栏网址没有发生任何改变,网站使用 ajax 动态加载技术来实现翻页,此时无法通过网址来区分各个页面的内容。...爬取这样页面有一定困难,但在 python 还是有方法可以解决,一般情况下我们可以通过以下方法来解决: 通过 selenium 来模拟浏览行为,从而获取翻页数据。...获取翻页请求网址 翻页请求实际上是一个 post 过程,我们需要知道 post 网址及通过 post 请求提交数据,通过 chrome 浏览开发者工具来看下如何实现整个过程。 ?

2.1K40

Python 自动化指南(繁琐工作自动化)第二版:十二、网络爬取

元素属性获取数据 Tag对象get()方法使得元素访问属性值变得简单。向该方法传递一个属性名称字符串,并返回该属性值。...如果我能简单地在命令行输入一个搜索词,让我电脑自动打开一个浏览器,在新标签显示所有热门搜索结果,那就太好了。...这就是你程序要做: 从命令行参数获取搜索关键字 检索搜索结果页面 为每个结果打开一个浏览器选项卡 这意味着您代码需要执行以下操作: sys.argv读取命令行参数。...然后这个帖子还会有一个“上一”按钮,以此类推,创建一个最近页面到站点上第一个帖子轨迹。如果你想要一份网站内容拷贝,以便在不在线时阅读,你可以手动浏览每一并保存每一。...你如何Tag对象获取一个字符串'Hello, world!'? 如何将一个 BeautifulSoup Tag对象所有属性存储在一个名为linkElem变量

8.6K70

爬虫学习(三)

/:根节点选取。 //:匹配选择的当前节点,选择文档节点,而不考虑他们位置。 .:选取当前节点。 ..:选取当前节点父节点。 @:选取属性。...爬取百度贴吧时候,发现他数据藏在了HTML页面的注释,是根据js解析出来。如果遇到诸如此类网站,数据是根据js修改后加载。我们只需要提供一个不支持js浏览器版本即可。...解决方法:通过获取数据情况来观察请求,寻找异常出现可能请求。 4.2 爬虫代码建议 1.尽量减少请求次数: 1.能抓列表就不抓详情。 2.保存获取html页面,供查错和重复请求使用。...获取cookie信息: driver.get_cookies() 获取当前页面的标题: driver.title 查看当前url: driver.current_url 定位百度页面的搜索框 kw...2.如何使用: a.导入selenium相关模块。 b.创建浏览器驱动对象。 c.使用驱动对象进行相关操作。 d.退出。 3.页面的等待:优先使用隐式等待,而后使用显示等待和固定等待。

5.7K30

JSP面试题都在这里(修订版)

使用jsp行为来包含文件,jsp源文件是这样子: ? jsp行为包含文件就是先编译被包含页面,再将页面的结果写入到包含页面(1.jsp) 当然了,现在有静态包含和动态包含,使用哪一个更好呢?...request对象为同一对象,因为静态包含只是将被包含页面的内容复制到包含页面中去;而动态包含包含页面和被包含页面不是同一个页面,被包含页面的request对象可以取到参数范围要相对大些,不仅可以取到传递到包含页面的参数...在JSP,尤其重要是pageContext对象。 pageContext是内置对象中最重要一个对象,它代表着JSP页面编译后内容(也就是JSP页面的运行环境)!...Servlet和JSP最主要不同点在于:Servlet应用逻辑是在Java文件,并且完全表示层HTML里分离开来。而JSP情况是Java和HTML可以组合成一个扩展名为.jsp文件。...缺点: 没有流程控制,程序JSP页面都需要检查请求参数是否正确,异常发生时处理。显示操作和业务逻辑代码工作会紧密耦合在一起

80161

python之抓取微信公众号文章系列2

再点击右边“新建图文素材” ? 弹出一个新标签,在上面的工具栏找到“超链接”并点击 ?...print("请拿手机扫码二维码登录公众号") time.sleep(20) print("登录成功") #重新载入公众号登录,登录之后会显示公众号后台首页,从这个返回内容获取...= get_search_result_by_keywords(sogou_search_url) # Step 2:搜索结果解析出公众号主页链接 log(u'获取sougou_search_html...): log(u'爬虫被目标网站封锁,请稍后再试') else: # Step 5: 使用PyQuery,Step 3获取html解析出公众号文章列表数据...,中文可能会搜出来多个,这里做是精确搜索只搜出来一个,查看公众号英文号,只要在手机上点开公众号然后查看公众号信息 防盗链 微信公众号对文章图片做了防盗链处理,所以如果在公众号和小程序、PC浏览器以外地方是无法显示图片

3.9K51

JSP面试题都在这里

,再将页面的结果写入到包含页面(1.jsp) 当然了,现在有静态包含和动态包含,使用哪一个更好呢?...,被包含页面的request对象可以取到参数范围要相对大些,不仅可以取到传递到包含页面的参数,同样也能取得在包含页面向下传递参数 jsp有哪些内置对象?...在JSP,尤其重要是pageContext对象。 pageContext是内置对象中最重要一个对象,它代表着JSP页面编译后内容(也就是JSP页面的运行环境)!...Servlet和JSP最主要不同点在于:Servlet应用逻辑是在Java文件,并且完全表示层HTML里分离开来。而JSP情况是Java和HTML可以组合成一个扩展名为.jsp文件。...缺点: 没有流程控制,程序JSP页面都需要检查请求参数是否正确,异常发生时处理。显示操作和业务逻辑代码工作会紧密耦合在一起

1.3K100

Python爬虫新手教程:微医挂号网医生数据抓取

本篇文章主要使用库为pyppeteer 和 pyquery 首先找到 医生列表 https://www.guahao.com/expert/all/全国/all/不限/p5 这个页面显示有 75952...条数据 ,实际测试,翻页到第38,数据就加载不出来了,目测后台程序猿没有把数据返回,不过为了学习,我们忍了。...而且官方文档写也不好,有兴趣可以自行去看看。关于这个库安装也在下面的网址。...https://miyakogi.github.io/pyppeteer/index.html 最简单使用方法,在官方文档也简单写了一下,如下,可以把一个网页直接保存为一张图片。...爬取页面 运行下面的代码,你就可以看到控制台不断打印网页源码,只要获取到源码,就可以进行后面的解析与保存数据了。

1.9K20

Django自定义实现分页器

1、分析和推导 1.1 当前 1.2 起始位置和终止位置 1.3 添加按钮传递页码数 2、方法封装 2.1 分页器类 2.2 视图函数 2.3 模板页面面的文章中分别介绍了drf框架中分页器使用及...Django框架中分页器用法,其重点在于视图函数和模板页面如何利用自带分页器相关参数进行数据传递和页面渲染 本文继续介绍分页器,即自定义分页器如何实现,其实也就是如何使用自定义方式计算出和上面类似自带分页器相关参数值...1、分析和推导 分页关键信息:当前、每页展示多少条、起始位置、终止位置 1.1 当前 思路:浏览器携带页码发送get请求,获取当前信息。...后端get请求获取响应页码数,查询对应数据并返回 # 想访问哪一 current_page = request.GET.get('page', 1) # 如果获取不到当前页码 就展示第一 #...return render(request, 'booklist.html', locals()) 2.3 模板页面 模板页面渲染 <

93020

基于某政府招标网爬虫

一些问题 数据准确性: 由于该网站中标公示信息并不是采用统一格式,所以获取中标详细信息可能会出现失败(例如:中标金额和中标单位),所以需要根据不同页面的不同格式来做出相应处理。...截图示例 在selenium模块使用,不能直接使用xpath语法获取元素内文字,因为selenium语法要求寻找到对象必须是html元素,不能是字符串。...获取页面隐藏元素text 之前遇到疑问: 使用xpath定位时,最好先将浏览器窗口滚动到屏幕上,否则元素获取不准确,有时候还获取不到,不要以为只要元素只要在当前html文档中就能获取!!!...xpath获取元素里文本两个必要条件: 元素在DOM,如果页面存在Iframe框架则需要定位到框架后获取; 元素在当前窗口显示(人眼可以看到)。...在html元素内,有些元素虽然在DOM文档,但是该元素css属性确实display: none;,而对这种元素直接使用element.txt是获取不到值,因为由于webdriver spec定义

1.4K11

【干货】Chrome插件(扩展)开发全攻略

什么是Chrome插件 严格来讲,我们正在东西应该叫Chrome扩展(Chrome Extension),真正意义上Chrome插件是更底层浏览器功能扩展,可能需要对浏览器源码有一定掌握才有能力去开发..."chrome_url_overrides": { // 覆盖浏览器默认新标签 "newtab": "newtab.html" }, // Chrome40以前插件配置写法...扩展可以替代如下页面: 历史记录:工具菜单上点击历史记录时访问页面,或者地址栏直接输入 chrome://history 新标签:当创建新标签时候访问页面,或者地址栏直接输入 chrome...URL,造成困扰; 下面的截图是默认新标签和被扩展替换掉新标签。...我们先看老版options: { // Chrome40以前插件配置写法 "options_page": "options.html", } 这个页面面的内容就随你自己发挥了,配置之后在插件管理就会看到一个选项按钮入口

11.5K40

爬虫必备工具,掌握它就解决了一半问题

> 查看网页源代码 在网页上右击鼠标,选择“查看网页源代码”(View Page Source),就会在新标签显示这个 URL 对应 HTML 代码文本。 ?...或者因为权限、验证等限制,代码获取结果和页面显示不一致。这些情况我们就需要更强大开发者工具来帮忙了。...打开 Network 页面,开启记录,然后刷新页面,就可以看到发出所有请求,包括数据、JS、CSS、图片、文档等等都会显示其中。请求列表可以寻找你目标。 一个个去找会很痛苦。...并不是所有 URL 都能直接通过 GET 获取(相当于在浏览器里打开地址),通常还要考虑这几样东西: 请求方法,是 GET 还是 POST。 请求附带参数数据。...除了 Elements 和 Network,开发者工具还有一些功能,比如: Sources,查看资源列表和调试 JS。 Console,显示页面的报错和输出,并且可以执行 JS 代码。

2.5K21
领券