Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 通过使用dart/FLATTER从谷歌抓取图像获得[]_Flutter_Dart_Web Scraping - Fatal编程技术网

Flutter 通过使用dart/FLATTER从谷歌抓取图像获得[]

Flutter 通过使用dart/FLATTER从谷歌抓取图像获得[],flutter,dart,web-scraping,Flutter,Dart,Web Scraping,您好,我想从谷歌抓取图像,但我得到[]作为列表的结果,我无法找出它,请参阅下面的代码 主要方法 void main(List<String> arguments) async { print('Hello world: ${web_scrapping.calculate()}!'); await getImageByDom('hyderabad'); print(imageList); } getImageByDom应该返回一个列表,而不是void 导入'dart:a

您好,我想从谷歌抓取图像,但我得到[]作为列表的结果,我无法找出它,请参阅下面的代码

主要方法

void main(List<String> arguments) async {
  print('Hello world: ${web_scrapping.calculate()}!');
  await getImageByDom('hyderabad');
  print(imageList);
}

getImageByDom
应该返回一个
列表,而不是void

导入'dart:async';
导入“dart:io”;
将“package:http/http.dart”导入为http;
导入“package:html/parser.dart”显示解析;
导入“package:html/dom.dart”;
Future main()异步{
List imageList=等待getImageByDom('hyderabad');
打印(图像列表);
}
未来getImageByDom(字符串城市)异步{
最终映射头={
HttpHeaders.userAgentHeader:
'Mozilla/5.0(Macintosh;英特尔Mac OS X 10_12_6)AppleWebKit/537.36(KHTML,类似Gecko)Chrome/80.0.3987.122 Safari/537.36'
};
最终响应=等待http.get(
'https://www.google.com.pk/search?q=$city+city&tbm=isch&ved=2ahUKEwiK5_jmqt_uAhWE4oUKHSH-DRYQ2-cCegQIABAA',
标题:标题);
if(response.statusCode!=HttpStatus.ok){
返回[];
}
var document=parse(response.body);
final元素=wait document.queryselectoral('.bRMDJf');
返回elements.map((a)=>a.querySelector('img').attributes['src']).toList();
}
输出

[data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==, data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==, data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==, data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==, data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==, data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==, data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==, data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==, data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==, data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==, data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==, data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==, data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==, data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==, data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==, data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==, data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==, data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==, data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==, data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]
Title: New Study Says 25 Cups Is Fine ...fortune.com
Thumbnail: https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSEQHSv8xWAiRTaXUcY0VbPy2BecsEZ2KpsPQ&usqp=CAU

Title: Positive and Negative Effects of Caffeineaarp.org
Thumbnail: https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQzN08BEkD0a2Gl7D1vyFUo-jHmhIvlH9FUXQ&usqp=CAU

Title: How is Coffee Decaffeinated?cafedirect.co.uk
Thumbnail: https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcT6Tcm59kufV9EkMEOkf9JErWrj0tSMwOCAIA&usqp=CAU

Title: Colombian Coffee Buzz: What's So Great ...ictcoffee.com
Thumbnail: https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQGOKd6N93WdEzpuxpopFJlCXZFqK7YBHofiA&usqp=CAU

Stripped...
但它提取1x1占位符图像是因为

  • 谷歌通过
    \u defd
    JS函数注入部分rg_元标记。您需要提取并解码它的参数
  • 谷歌图片也直接以HTML标记的形式包含图片,而不是.rg_meta。您可以像解析普通HTML标记一样解析它们
谷歌JS代码的一部分来自谷歌图片,注入标签。第一个参数defd1是要替换为内容的占位符HTML元素的ID。第二个参数是编码的HTML字符串

\u defd(defd1,,,,,,\x3 CDCD4 4行动\x3 D\x3 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3\x22 jsmodel\x3d\x22uZbpBf sB4qxc\x22 jsdata\x3d\x22j0Opre;9pyRez7A01yLeM;27\x22样式\x3d\x22width:283px;\x22数据tbnid\x3d\x229pyRez7A01yLeM\x22数据ct\x3d\x220\x22数据cb\x3d\x220\x22数据cl\x3d\x220\x22数据cr\x3d\x223\x22数据tw\x3d\x22数据tw\x22\x22数据ow\x3d\X221\X210\X22OH\X221\X221\X219数据类\x22 jsname\x3d\x22sTFXNd\x22 jsaction\x3d\x22点击:J9iaEb;\x22 jsaction\x3d\x22鼠标下载:npT2md;触摸启动:npT2md;\x22数据导航\x3d\x221\x22选项卡索引\x3d\x220\x22样式\x3d\x22高度:164px;\x22\x3e\x3cdiv类\x3d\x22bRMDJf islir\x22 jsname\x3d\x22样式\X2D\X22DEYS22背景:rgb(200194)宽度:292px;高度:164px;左边距:0px;右边距:-9px;\x22 jsaction\x3d\x22mousedown:npT2md;touchstart:npT2md;\x22\x3e\x3cimg class\x3d\x22rg\x4LUWD tx8vtf\x22数据src\x3d\x22https:\/\/加密的-tbn0.gstatic.com\/images\q\x37dtbn%牙买加咖啡公司为迎合美国市场制定计划-OEC…\x22\/\x3e\x3c\/div\x3e\x3c\/div\x3e\x3cdiv class\x3d\x22c7cjWc\x22\x3e\x3c\/div\x3e\x3e\x3c\/div\x3e\x3e\x3c\/x3e\x2e\x2e\x3cdiv class\x3d\x22d\x22PiLIec\x22 jsaction\x3d\x22\x22点击:gFs2Re\x22\x2e\x3e\x3e\x3c\/x3c\/div\x3c\/div\x3c\/div4kDegQIARBZ\x22 jsname\x3d\x22uy6ald\x22 rel\x3d\x22oopener\x22 target\x3d\x22 blank\x22 href\x3d\x22http:\/\/oecsbusinessfocus.com\/牙买加咖啡公司制定计划吸引美国市场\/\x22 jsaction\x3d\x22focus:kvvb;mousedown:kvvb;touchtstart:kvvb;\x22\x3e\x3e\x3e\x3cdiv class\x3d\x22smic\x3e\x24lnqe\x32\x32牙买加咖啡公司制定计划…\x3c\/div\x3e\x3cdiv class\x3d\x22fxgdke\x22\x3eoecsbusinessfocus.com\x3c\/div\x3e\x3c\/div\x3e\x3c\/a\x3e\x3c\/div\x3e')

或者,你也可以通过SerpApi获取图像。这是一个付费API,免费试用

导入'dart:async';
导入“dart:convert”;
导入“dart:io”展示平台,HttpStatus;
将“package:http/http.dart”导入为http;
Future main()异步{
Map envVars=Platform.environment;
final uri=uri.https('serpapi.com','/search'{
‘q’:‘咖啡’,
“谷歌域名”:“google.com.pk”,
‘gl’:‘pk’,
“tbm”:“isch”,
“api_键”:envVars['api_键],
});
最终响应=等待http.get(uri);
最终convertedResponse=jsonDecode(response.body);
对于(convertedResponse['images_results']中的最终图像结果){
打印(“”)
标题:${imageResult['Title']}
缩略图:${imageResult['Thumbnail']}
""");
}
}
输出

[data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==, data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==, data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==, data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==, data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==, data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==, data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==, data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==, data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==, data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==, data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==, data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==, data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==, data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==, data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==, data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==, data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==, data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==, data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==, data:image/gif;base64,R0lGODlhAQABAIAAAP///////yH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null]
Title: New Study Says 25 Cups Is Fine ...fortune.com
Thumbnail: https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcSEQHSv8xWAiRTaXUcY0VbPy2BecsEZ2KpsPQ&usqp=CAU

Title: Positive and Negative Effects of Caffeineaarp.org
Thumbnail: https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQzN08BEkD0a2Gl7D1vyFUo-jHmhIvlH9FUXQ&usqp=CAU

Title: How is Coffee Decaffeinated?cafedirect.co.uk
Thumbnail: https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcT6Tcm59kufV9EkMEOkf9JErWrj0tSMwOCAIA&usqp=CAU

Title: Colombian Coffee Buzz: What's So Great ...ictcoffee.com
Thumbnail: https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQGOKd6N93WdEzpuxpopFJlCXZFqK7YBHofiA&usqp=CAU

Stripped...
披露:我在SerpApi工作