【问题标题】:How to get attribute value from attribute name in dart(_EVENTVALIDATION from html attribute in dart)?如何从 dart 中的属性名称获取属性值(dart 中的 html 属性中的 _EVENTVALIDATION)?
【发布时间】:2021-06-09 09:42:36
【问题描述】:

我正在尝试从网页中抓取数据。我想获取 value 属性中存在的值(来自下面给出的 html 元素)

<input type="hidden" 
       name="__EVENTVALIDATION" 
       id="__EVENTVALIDATION" 
       value="abcdefghijklmnopq" />

我通过在flutter中对网页的get请求后解析html得到这个值

var document = parse(response.body);

然后

var event_element = document.getElementById('_EVENTVALIDATION');

我现在想要的是字符串形式的值 'abcdefghijklmnopq'。

到目前为止,我已经尝试过使用 html 包(没有用)。

在那之后我使用了 xpath(但这也没有成功),我已经连续 2 天进行头脑风暴。

我们将不胜感激任何形式的帮助 :)

这是我的代码示例

import 'package:html/parser.dart';
import 'package:http/http.dart' as http;
import 'package:html/parser.dart';
import 'package:html/dom.dart';
import 'package:html/dom_parsing.dart';



    Future<void> fetchdata() async {
  Uri url1 = Uri.parse('https://www.jhjkfw.com/login');

  http.Response response = await http.get(url1);
  var document = parse(response.body)

  var valueofevent = document.getElementById('_EVENTVALIDATION').getAttribute('value');
print(valueofevent);


}

也是我的 pubspec.yaml

    dependencies:
  flutter:
    sdk: flutter
  http: ^0.13.0
  html: ^0.15.0

我也尝试了以下方法,但它给了我一个错误:

var valueofevent = document.getElementById('_EVENTVALIDATION').getAttribute('value');

错误状态:没有为类型“元素”定义方法“getAttribute”。尝试将名称更正为现有方法的名称,或定义名为“getAttribute”的方法

【问题讨论】:

    标签: html flutter dart flutter-web dart-pub


    【解决方案1】:

    你说你试过了,但没用。但不是您尝试过的什么。这应该工作。如果没有,您将需要更具体地了解究竟是什么不起作用:

    var value = event_element.getAttribute('value'); 
    

    【讨论】:

    • 我试过这个,但它给了我:方法'getAttribute'没有为'Element'类型定义。尝试将名称更正为现有方法的名称,或定义名为“getAttribute”的方法
    • 我正在做这个'''var valueofevent = document.getElementById('_EVENTVALIDATION').getAttribute('value');'''(请让我知道这是否足够我会如果需要,请提供更多)。
    • 不,这还不够,因为我不知道您使用哪些库来实现这些功能。请提供minimal reproducible example
    • 我用一个简单的例子编辑了我的问题,还有什么......?
    【解决方案2】:

    我使用以下代码制作了另一种方法:

    var valueofevent = document.getElementById('_EVENTVALIDATION').attributes['value'];
    

    这非常适合我!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-16
      • 2012-01-08
      • 2010-09-28
      • 1970-01-01
      • 2021-12-04
      • 2017-05-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多