Получение источника img из поиска Google - PullRequest
0 голосов
/ 03 мая 2020

Я написал программу, которая запрашивает Google и использует информацию, возвращенную для моей логики c приложения.

При попытке получить изображения (изображения большого пальца, которые мы можем найти во всех поисках), с которыми я столкнулся много проблем.

после очень продолжительного сеанса отладки. Я думаю, что проблема в том, что изображения загружаются через JS как контент с отложенной загрузкой. для которого мне нужно будет полностью загрузить страницу (как это делает веб-браузер) и использовать окончательный полностью загруженный HTML исходный код.

Я ищу везде, как мне это сделать в java, но не удалось найти какой-либо выполнимый способ.

Между тем, я застрял в том факте, что все теги g-img содержат точно такую ​​же информацию, что, как мне кажется, содержат некоторые данные аутентификации пользователя, которые бесполезны в любом случае.

При просмотре sr c в браузере я вижу, что ссылка имеет длину более 8000 символов (кодированное изображение), тогда как в моей программе это всего 164 символа.

Мой вопрос это как я могу получить изображения SR c?

Вот как я получаю HTML файл:

String google = "https://www.google.com/search?q=";
try{
    Connection.Response response = Jsoup.connect(google+userInput+getNumofResults(99))
                        .ignoreContentType(true)
                        .userAgent("Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/79.0.3945.117 Safari/537.36")
                        .referrer("http://www.google.com")
                        .timeout(16000)
                        .followRedirects(true)
                        .execute();
     doc = response.parse();
} catch (IOException e) {
     e.printStackTrace();
     System.out.println("Error in HTTP request");
}

и вот как я пытаюсь получить изображение из элементов (используя Jsoup):

Element gImg = div.select("g-img").first();
String img = null;
if (gImg!=null)
img=gImg.select("img[id^=leftthumb]").first().attr("src");
...