Пилю сайт на WP + woocommerce.
Получил прайс-лист, из миллиона позиций(строк). К моему сожалению, в прайсе есть название, бренд, артикул, но нету изображений. Знал про importHTML и importXML в Google Sheets, о которых прочитал у АлаиЧа.
По сути, ничего сложного, отправить запрос в Google и получить ссылку на картинку(на первую картинку по данному запросу). Но на практике, как всегда, появились подводные камни. Вспомнил, что пару лет назад(а может и меньше) Google и Яндекс закрыли ссылки на изображения на выдаче в сервисах поиска картинок. Более того, то, что вы ведите в исходном коде страницы, и то, что вы ведите «проинспектировав» элемент — разные коды. Вот пример:
Открывая исходных код view-source:https://yandex.ru/images/search?text=asd
В Google — такая же история. Это первый нюанс. А второй заключается в том — что это не совсем ссылка на картинку. Но ссылки там все таки имеются:
Другое дело — даже их никак не подцепить. В этом момент я опять отчаялся, и решил вернуться работать с Google. но мои попытки были тщетны — там абсолютная такая же история. А потом я вспомнил, что на Яндекс и Google не заканчивается поисковые системы. Так вот, поэкспериментировав с Rambler, у меня получилось достать ссылки на картинки, пришлось написать чудную функцию в Google Sheets.
Вот план:
1. Открываем ссылку поиска картинок рамблера:
https://images.rambler.ru/search?
2. Выбираем первую картинку и видим вот такую ссылку — https://images.rambler.ru/search?query=asd&i=0
Давайте разберемся что тут:
https://images.rambler.ru/search?query= — ссылка поиска, без самого запроса. После = необходимо добавить артикул(название+артикул) или что еще вам нужно.
&i=0 — то, какую позицию выбрали. Так как в программирование расчет начинается с нуля, то первый элемент i=0
3. Не стоит забывать, что пробелы кодируются в символ %20 (Это нужно помнить, что бы правильно собрать URL). В Sheets необходимо использовать функцию SUBSTITUTE для замены какого либо символа в ячейке. В нашем случае SUBSTITUTE(«А тут та ячейка, где например название бренда или товара, в котором может быть пробел»;» «;»%20»). А так же формулу СЦЕПИТЬ, но в Sheets она CONCATENATE
4. Откроем исходный код страницы с выбранной первой картинкой — view-source:https://images.rambler.ru/search?query=asd&i=0
Тут мы видим ссылку на картинку прям в микроразметке сайта:
5. Нам необходимо получить значение атрибута content тега meta со свойством >.
В моем случае, итог формулы выглядит вот так: =importxml(CONCATENATE($I$1;SUBSTITUTE(A2;» «;»%20″);$H$1;B2;$H$1;SUBSTITUTE(C2;» «;»%20»);$J$1);»//meta[@>
Если коротко — тут я взял с трех ячеек значения(бренд, артикул, название) заменил пробелы, связал, сделал запрос в Rambler, и получил значение параметра content тега meta с свойством > или другими словами — ссылку на первую картинку.
Огромный минус данного способа — время. Google отправляет(насколько мне известно) 100 запросов потом таймаут. Более того, таймаут ответа есть и у Рамблера. Но с другой стороны — протянул формулу до конца документа — и пусть он собирает картинки неделю, сам. Кстати, пробовал юзать PictureYandexGraber или такой же аналог только под Google, но это все не то, т.к. нужны были просто ссылки на картинки, причем в документе Exel. ( Ну давай по умничай мне тут в комментах, как ты будешь миллион документов открывать и вручную ссылку вставлять в прайс-лист).
P.S. Может я тупой, не знаю нормального быстрого способа? Расскажи мне, в комментариях, я обязательно это прочитаю, но это не точно. techcraunch.com
Друзья, я в своем канале тг собрал полный список gov и edu сайтов(например, .gov.ru bkb…
Доброго времени суток Когда-то сидел в одном клубе, и местами там была даже годнота. Сохранил…
Доброго времени суток. Популярная сейчас тема, решил написать пару слов, для тех, у кого возникают…
Доброго времени суток. Не реклама. Искал для своих проектов TDS-ку, смотрел рейтинги, сравнение. В том…
Всем салют. Создал канал в ТГ, теперь иногда пишу туда. Более того, там есть посты…
Сбор на охоту (Предыстория) История из далекого 2012-2014 года. Дело было когда я работал начинающем…