scrape method
HTTP Method: POST A JSON-based API that returns text, html, and meta-data from a given list of selectors. Debugging information is available by sending in the appropriate flags in the "debugOpts" property. Responds with an array of JSON objects.
Note: This endpoint is also available at: /scrape for backwards compatibility.
Summary: /chromium/scrape
Implementation
Future<Map<String, dynamic>> scrape({
bool? blockAds,
CDPLaunchOptionsOrString? launch,
String? profile,
num? timeout,
String? token,
String? trackingId,
Map<String, dynamic>? body,
}) async {
final queryParams = <String, String>{};
if (defaultToken != null) {
queryParams['token'] = defaultToken!;
}
if (blockAds != null) {
queryParams['blockAds'] = blockAds.toString();
}
if (launch != null) {
queryParams['launch'] = launch.toString();
}
if (profile != null) {
queryParams['profile'] = profile.toString();
}
if (timeout != null) {
queryParams['timeout'] = timeout.toString();
}
if (token != null) {
queryParams['token'] = token.toString();
}
if (trackingId != null) {
queryParams['trackingId'] = trackingId.toString();
}
final pathUrl = '/chromium/scrape';
final uri = Uri.parse(
'$baseUrl$pathUrl',
).replace(queryParameters: queryParams.isNotEmpty ? queryParams : null);
final request = http.Request('POST', uri);
if (body != null) {
request.headers['Content-Type'] = 'application/json';
request.body = jsonEncode(body);
}
final streamedResponse = await _client.send(request);
final response = await http.Response.fromStream(streamedResponse);
if (response.statusCode != 200 && response.statusCode != 204) {
throw Exception('HTTP ${response.statusCode}: ${response.body}');
}
if (response.statusCode == 204) return {};
return jsonDecode(response.body);
}