我正试图从网页中抓取数据。我想得到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(但也没有成功(,我已经连续两天集思广益了。
任何形式的帮助都将不胜感激:(
这是我的代码示例
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');
错误状态:未为类型"Element"定义方法"getAttribute"。尝试将名称更正为现有方法的名称,或定义名为"getAttribute"的方法
我使用以下代码进行了另一种方法:
var valueofevent = document.getElementById('_EVENTVALIDATION').attributes['value'];
这对我来说非常适用!
你说你试过了,但没有成功。但不是你尝试了什么。这应该工作。如果没有,你需要更具体地说明到底是什么不起作用:
var value = event_element.getAttribute('value');