Парсинг. Общее

Часто бывает, что прайс лист поставщика недостаточно информативен, чтобы с его помощью можно было наполнить магазин полноценными товарами: с картинками, характеристиками, описанием и названием.

Но плагину будет достаточно, если прайс лист содержит ссылки на страницы товаров. Если в прайс листе ссылок нет, то их можно добавить руками.

Пример минимального прайс листа для наполнения магазина:

Ручное добавление ссылок в прайс лист - не такой тяжелый труд, как может показаться на первый взгляд. Обычно за 1 рабочий день можно добавить 500 - 800 ссылок, без особого напряжения.

Главное, обеспечить связь артикула товара и ссылки. Чтобы артикулы товаров в магазине совпадали с их артикулами в прайс листе поставщика. Это необходимо для того, чтобы в последствии, плагин мог автоматически обновлять цены и остатки товарам по прайс листам.


Принцип работы парсера.

Задача парсера - найти в тексте нужный фрагмент, используя ваши указания. Можно задать всего 4 указания парсеру:

1. Номер колонки, содержащей ссылку на страницу с товаром (в данном случае, колонка номер 4)

2. Параметры парсинга: два текста в коде страницы, между которыми находится искомый фрагмент. Например, название "Рюкзак Walker Ray Hype Black, 30x50x16 см" находится между параметрами content="  и  "

следовательно параметры парсинга будут такими:

Однако, по таким параметрам, плагин спарсит текст website, поскольку он встречается раньше, чем название товара Рюкзак Walker Ray Hype Black, 30x50x16 см (см. код страницы).

Чтобы уточнить парсинг используются "Тексты начала и конца парсинга".

3. Предписывают плагину, какой фрагмент текста нужно вырезать из веб-страницы, чтобы в этом фрагменте искать параметры парсинга.

Если вырезать из исходной страницы фрагмент от текста property="og:title и до конца, то результат парсинга будет правильным потому, что поиск параметров начнется от текста property="og:title:

4. Можно было не использовать "Тексты начала и конца парсинга", если воспользоваться "Номером вхождения первого параметра". В данном случае, первый параметр - слово content=" встречается коде страницы дважды, значит такой вариант парсинга тоже будет правильным:


Парсинг под паролем.

Если вы являетесь официальным партнером поставщика, а сайт поставщика защищен от несанкционированного просмотра, то у вас должен быть логин и пароль для доступа к страницам сайта.

Это означает, что вы можете парсить сайт поставщика. Точнее не вы, а ваш сервер (сайт), на котором установлен плагин. А если говорить совсем точно, то парсит форма поставщика, в которой вы прописали параметры парсинга.

Логин и пароль для доступа к "закрытому" сайту следует прописать в форме поставщика, во вкладке "Cron" в "Основном задании":

даже если, вы не пользуетесь кроном.

Т.е. задания крон могут быть отключены:


Парсинг ячейки прайс листа.

Иногда поставщики выводят характеристики товаров не в отдельных колонках прайс листа, а в колонке "Описание" в виде таблицы под текстом:

Плагин сможет разобрать этот текст на атрибуты аналогично тому, как он это делает при парсинге веб-страницы. Настройки будут такими:

1. Номер колонки прайс листа, содержащей такие описания, следует прописать здесь:

2. Разрешить загрузку атрибутов в товары:

3. Настроить парсинг:


Парсинг. Траблы

Парсинг файла.

Необходимость парсить файлы возникает тогда, когда сайт-донор не хочет отдавать свою веб-страницу вашему серверу - защищается.

Не следует упрекать сайт-донор в злонамеренности, скорее всего, он воспринял ваши попытки парсинга, как DDOS-атаку, ведь при парсинге, ваш сервер переходит по страницам сайта-донора со скоростью, которая не доступна простому пользователю, просматривающему страницы товаров со своего компьютера.

В плагине есть возможность замедлить скорость перехода по страницам, это меню:

но если вы увидели в Отчете плагина текст:

 The Product passed: Row ~= 6  url = http://www.site.com....  Site no answer 

значит, с включением паузы парсинга вы опоздали. Ваш сервер забанили, и теперь придется
парсить страницы донора, как файлы.


Для этого:

1. Нужно зайти на страницу товара со своего компьютера

2. Выделить часть ссылки на эту страницу, как будущее название файла по следующим правилам:

От знака ? до конца ссылки или до точки:

От знака & до конца ссылки или до точки:

От слэша:

(если в конце ссылки стоит слэш, то до слэша).

3. Последовательно нажать клавиши:

ctrl+C , ctrl+S , ctrl+V и  Enter

Страница сохранится как HTML файл на вашем компьютере:

4. Из имени файла удалить расширение (воспользуйтесь "Групповым переименованием"):

5. Закачайте файлы страниц на сайт в папку admin/uploads.

6. Включите кнопку:

и сохраните форму поставщика.

7. Отправьте прайс лист в обработку.


Прокси.

В файле admin/model/catalog/suppler.php можно прописать адреса прокси серверов. Это позволит избежать проблем, связанных с баном.

По-умолчанию, парсинг через прокси в плагине отключен, поскольку это сильно замедляет работу. Чтобы разрешить использование прокси нужно снять комментарий (ищите по тексту $arr_proxi = array(); ):

Обязательно обновите адреса прокси серверов.


Фальшивая страница.

Если при парсинге веб-страницы, в Отчете появилось сообщение:

Parsing Product Name error: Row 12  Check your settings.

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

Чтобы увидеть, что именно прислал сайт-донор, нужно в файле плагина admin/model/catalog/suppler.php перед строками return $body; в двух местах:

1

2

вставить текст:

$err = " Answer = " . $body ." \n"; 
$this->adderr($err);

Попробовать на прайс листе с одним товаром. Результат можно будет увидеть в Отчете (файл admin/uploads/errors.tmp).


usergio Copyright © 2022