С Новым годом! Форум программистов, компьютерный форум, киберфорум
JavaScript для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/21: Рейтинг темы: голосов - 21, средняя оценка - 4.86
6 / 3 / 0
Регистрация: 04.05.2018
Сообщений: 407

Парсинг ссылки на изображение Google Apps script

22.05.2021, 15:27. Показов 4463. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствие, знакомство:
Доброго времени суток, уважаемые форумчане. Я программировал на ЯП: С++, Java, Python, Pascal, C#, VBA, а так же на ЯГР: HTML, CSS но до JS еще руки не доходили.

Суть проблемы:
Сейчас необходимо используя Google Apps Script написать интересный макрос, который будет парсить ссылку картинки, в определенном сайте (к примеру на этом). Как можете заметить картинка видна сразу, но изучая исходники страницы становится понятно, что определенного тега здесь нет (я его не вижу в упор).

Вопрос:
Каким образом можно получить по подобной ссылке ссылку непосредственно на саму картинку? Можно ли это сделать непосредственно в Google Apps Script? (Я думаю можно). Если можно, как ну или в каком направлении двигаться?

P.S. Буду искренне благодарен, если покажете тропу, по которой стоит двигаться
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.05.2021, 15:27
Ответы с готовыми решениями:

Google apps script
Подскажите пожалуйста как в гугл таблица сделать выбор диапазона ячеек с определенными датами???? скрипт не хочет работать ругается на...

Google Apps Script проблема с возвратом значений true/false из google.script.run
Добрый день. Подскажите пожалуйста. Есть гугл таблица, проект развернут как web-приложение. На уровне html код обращается к...

метод editMessageReplyMarkup() на Google Apps Script
есть метод для отправки сообщений можно текст и клавиатуру отправлять function sendMessage(id, text, keyBoard){ var data = { ...

4
 Аватар для evikza
968 / 530 / 244
Регистрация: 20.05.2015
Сообщений: 776
23.05.2021, 00:24
Лучший ответ Сообщение было отмечено MetMark как решение

Решение

MetMark, здравствуйте. Сначала необходимо определить, что Вы собираетесь парсить. Если ссылка запроса соответствует тому, что в сообщении:

В JS есть метод fetch(). С помощью него можно отправлять запросы и по необходимости получать сырой HTML. В Вашем случае — это не поможет. Потому что, у IKEA изображения генерируются на стороне JS. Из-за этого, Вы ничего не нашли в исходном коде страницы.

Изображение находится тут:

Code
1
https://www.ikea.com/ru/ru/products/624/50424624-compact-fragment.html
Но, на мой взгляд — это не лучший вариант.

Посмотрев в браузере вкладку Network можно увидеть, что с сервера прилетает JSON ответ с папирусом данных товара, который был открыт. Выглядит запрос вот так:

Code
1
https://www.ikea.com/ru/ru/products/624/50424624.json
Интересные цифры? Я сначала и не понял, как формировать запрос, чтобы получить данные о товаре. А потом как понял.

Code
1
https://www.ikea.com/ru/ru/products/{3_последних_цифры_ид_товара}/{ид_товара}.json
Исходя и из вашей ссылки в сообщении, можно сделать простой запрос в GAS и получить ссылку на изображение.

JavaScript
1
2
3
4
5
6
7
8
9
10
function request() {
 
  var request = UrlFetchApp.fetch('https://www.ikea.com/ru/ru/products/624/50424624.json').getContentText();
  var response = JSON.parse(request);
 
  Logger.log(response.mainImage.url)
 
}
 
// https://www.ikea.com/ru/ru/images/products/knopparp-2-mestnyy-divan-knisa-svetlo-seryy__0713943_pe729858_s5.jpg
Что Вам остается сделать:
  1. Вырезать из ссылки https://www.ikea.com/ru/ru/search/products/?q=50424624 GET параметр 50424624
  2. Забрать 3 последние цифры идентификатора и подставить их в запрос для получения JSON
  3. Выполнить запрос UrlFetchApp.fetch() и распарсить его.


Всё это будет работать исключительно для товаров сайта IKEA. Как работать и парсить с другими сайтами — не имею понятия. Всё очень индивидуально. С Google Apps Script знаком 23 минуты.
2
6 / 3 / 0
Регистрация: 04.05.2018
Сообщений: 407
24.05.2021, 16:45  [ТС]
evikza, написал свой алгоритм, который нужен был, на основе вашего ответа, на мои вопросы. Все прекрасно работает.

Хотел сказать, что вы не просто помогли мне решить какой-то вопрос, вы мне приоткрыли глаза на новую для меня область веб. разработки. Спасибо вам большое!
0
 Аватар для evikza
968 / 530 / 244
Регистрация: 20.05.2015
Сообщений: 776
24.05.2021, 17:43
MetMark, да не за что.

Хочу еще дополнить свой ответ, если речь всё же идет про изображения с сайта о котором говорили.

В JSON, сервер отдает изображение наибóльшего размера. Вы можете регулировать это самостоятельно, когда уже получили изображение.

Если посмотреть на ссылку:

Code
1
https://www.ikea.com/ru/ru/images/products/knopparp-2-mestnyy-divan-knisa-svetlo-seryy__0713943_pe729858_s5.jpg
Можно увидеть в строке _s5. Число (5) — это и есть размер изображения. Есть 5 размеров. От самого маленького до оригинала:

Code
1
_s1, _s2, _s3, _s4, _s5
Заменить число можно, если написать функцию — что-то подобное:

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
function main() {
 
  function presetImageByQuality(uri, size) {
    return uri.replace(/_s\d{1}/, `_s${size}`);
  }
 
  Logger.log(
    presetImageByQuality(
      "https://www.ikea.com/ru/ru/images/products/knopparp-2-mestnyy-divan-knisa-svetlo-seryy__0713943_pe729858_s5.jpg",
      3 // устанавливаем качество изображения
    )
  )
 
}
Или, просто передавать в ссылку параметр с ключом f Этот вариант узнал только сейчас:

Code
1
?f=b, ?f=m, ?f=xxs ,?f=xxxs, ?f=u
Code
1
https://www.ikea.com/ru/ru/images/products/knopparp-2-mestnyy-divan-knisa-svetlo-seryy__0827225_pe706767_s5.jpg?f=xxxs
2
6 / 3 / 0
Регистрация: 04.05.2018
Сообщений: 407
24.05.2021, 17:58  [ТС]
evikza, воу, реально круто. Спасибо еще раз. Буду знать. Вы гений!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
24.05.2021, 17:58
Помогаю со студенческими работами здесь

Аналог ВПР в Google Apps Script?
Всем привет, Не уверен что это правильная ветка форума, но попробую: Есть ли в GAS аналог ВПР? Который прописывается не в ячейки,...

[Google Apps Script] Не допустить повторов в таблице
Здравствуйте. Есть google таблица. В эту таблицу записывается информация о накладных с Нова Пошта через каждые два часа. Небходимо...

[Google Apps Script] Как правильно запустить onclick?
Здравствуйте. Есть массив let data = ; Есть div с onclick <div id = "child" class="child-${n+1}"...

[Google Apps Script] Скрипты не работают при копировании.
Google Apps Script не работают при копировании. Перекинул из одного проекта и таблицы и сами скрипты, функция: подтягивать данные из...

[Google Apps Script] Проверить результат вычислений встроенных функций
Здравствуйте! Я правильно понимаю, что для получения Z нужно в самом окне расписать полученную формулу? И как делать Z_JavaScript, если...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru