Reputation: 15
I cant use the google image search api so I have to scrape google images instead. But when I scrape it the image quality is very bad.
Future<List<String>> fetchGoogleImages(String query) async {
final url = Uri.parse('https://www.google.com/search?tbm=isch&q=$query');
final response = await http.get(url, headers: {
'User-Agent':
'Mozilla/5.0 (iPhone; CPU iPhone OS 14_0 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/14.0 Mobile/15A372 Safari/604.1'
});
if (response.statusCode == 200) {
var document = parser.parse(response.body);
var imageElements = document.getElementsByTagName('img');
List<String> imageUrls = [];
for (var element in imageElements) {
var src = element.attributes['src'];
if (src != null && src.startsWith('http')) {
imageUrls.add(src);
}
}
return imageUrls;
} else {
throw Exception('Failed to load images');
}
}
Upvotes: 0
Views: 26