Пилю сайт на 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 со свойством property=’og:image’.
В моем случае, итог формулы выглядит вот так: =importxml(CONCATENATE($I$1;SUBSTITUTE(A2;» «;»%20″);$H$1;B2;$H$1;SUBSTITUTE(C2;» «;»%20″);$J$1);»//meta[@property=’og:image’]/@content»)
Если коротко — тут я взял с трех ячеек значения(бренд, артикул, название) заменил пробелы, связал, сделал запрос в Rambler, и получил значение параметра content тега meta с свойством property=’og:image’ или другими словами — ссылку на первую картинку.
Огромный минус данного способа — время. Google отправляет(насколько мне известно) 100 запросов потом таймаут. Более того, таймаут ответа есть и у Рамблера. Но с другой стороны — протянул формулу до конца документа — и пусть он собирает картинки неделю, сам. Кстати, пробовал юзать PictureYandexGraber или такой же аналог только под Google, но это все не то, т.к. нужны были просто ссылки на картинки, причем в документе Exel. ( Ну давай по умничай мне тут в комментах, как ты будешь миллион документов открывать и вручную ссылку вставлять в прайс-лист).
P.S. Может я тупой, не знаю нормального быстрого способа? Расскажи мне, в комментариях, я обязательно это прочитаю, но это не точно. techcraunch.com
Попробуй
1. Взять карту сайта, вытащить оттуда все ссылки на товары
2. Скормить их screaming frog
3. Там есть режим extraction, который по xpath вытягивает данные. Посмотри в коде страниц ссылки на картинки, скопируй xpath, добавь в поле в extraction
4. Аналогично для артикула
5. Спарси все это дело, потом через впр сопоставь в Экселе.
Хз будем работать на больших объемах или нет — тестил до 5к позиций. Топорно, но работает.
Да, нормальная тема. Но там тоже есть много нюансов. А что в 5м пункте, «сопоставить через впр» — это что?
Функция ВПР в экселе, она же vlookup — для сопоставления данных. Чтобы у тебя по артикулам (которые в прайсе поставщика) подтянулись нужные картинки из той таблицы, что ты парсил жабой.
Понял. Спасибо. Обязательно посмотрю
многопоток в BrowserAutomationStudio
Спасибо. Уже изучаю)
хьюмен эмулятор?
1кк s WP+Wocommerce??
ахахаххахахахха
Ты просто не представляешь какой пиздец начинается после 35к позиций — у тебя тупо не хватит места для базы.
(по теме — любой браузерный двиг — зенка, bas, selenium)