Допилил до более-менее рабочего состояния вторую версию парсера. Основные отличия:
- Парсить можно в любые сущности зарегистрированные на сайте — ноды, термины, пользователи, комментарии, товары и т.д.
- Работа с сущностями ведётся с помощью Entity metadata wrappers.
- Поддержка всех, доступных для записи, свойств сущности — автор, статус и т.п.
- Все файлы, скачанные парсером, сохраняются в кэше (
public://parser_cache
) и при повторном парсинге берутся из него.
Модуль не совместим с первой версией, поэтому перед установкой анинсталим её, удаляем папку с модулем и устанавливаем вторую версию.
Прямая ссылка на скачку последнего снапшота Parser 2.
Если отписываете о найденных багах, то обязательно прикладывайте экспорт задания.
Написанное актуально для
Drupal 7
Похожие записи
- Модуль Parser — парсинг сайтов
- Модуль EAV Field — хранение большого числа характеристик сущности в одном поле
- Модуль Background Queue — выполнение всей очереди в фоне
- Модуль Commerce Fast Ajax Add to Cart — ajax кнопка "Добавить в корзину" без кэширования формы
- Модуль Block Visibility by Vocabulary — вывод блока только на страницах терминов определённого словаря
Комментарии
Создал ветку на друпал ру давайте найдем человека кто сможет перенести на Drupal 8 этот супермодуль. Так же если есть желающие скинуться (такие были выше) будет супер!
Добрый день!
Подскажите пожалуйста как для body возвращать значение с языком. Стоит модуль entity_translation и переводы включены через переводы строк, а не созданием отдельных нод для каждого из языка, т.е. поле BODY должно выглядеть так:
А модуль возвращает значение в виде
Попробуйте перед return добавить
Не проверял.
А с идеей переноса на Drupal 8 что сейчас? Не удалось? Классный модуль.
Добрый день.
При повторном обходе страниц по крону (через функцию "Периодичность запуска в фоне") возникает ошибка:
Начался парсинг "Модели: Всех типов (часть 1)"Allowed memory size of 268435456 bytes exhausted (tried to allocate 334319 bytes) (line 402 of /public_html/sites/all/modules/xandeadx-parser-14c0157/phpQuery/phpQuery/phpQuery/DOMDocumentWrapper.php).
Модуль Ultimate Cron.
Страницы уже были спарсены и 99% из них находятся в кеше.
Ошибки возникают при разовом обходе примерно ±6000 страниц.
Как можно обойти данную ошибку (без увеличения лимитов на сервере)?
Никак
Понял. Благодарен за ответ!
Пытаюсь парсить один сайт, выдает ошибку:
Ошибка при закачке "https://.../catalog": Ошибка открытия сокета ssl://www....:443
что можно сделать?
https://www.drupal.org/project/content_parser parser for drupal 8
Импортировал ноды.
Через поле термина у меня создались новые термины, все ОК.
Но как через другой job parsing отредактировать автоматически созданные термины добавив им некоторые поля?
Спасибо за помощь!
Здравствуйте.
Я использую парсер для создания товаров в Drupal Commerce. Для этого создал две задачи парсера: первая - создает сущности товаров DC, вторая создает ноды представления товаров. Парсинг запускаю по крону через модуль Elysia Cron. Все работает замечательно на тестовых малых объемах, но товаров очень много и поэтому не возможно сказать точно когда закончит работать первая задача, чтобы запустить вторую.
Два вопроса:
1) Как контролировать порядок запуска и время запуска задач парсера?
2) Можно ли задать каждой задаче свои параметры крона? Или это делать надо так: например, надо чтобы парсер срабатывал один раз в сутки, ночью. Устанавливаю параметры крона 0 3 * * *, первой задаче устанавливаю параметра "Периодичность запуска в фоне" = 86400 (24 часа), первой задаче устанавливаю параметра "Периодичность запуска в фоне" = 90000 (25 часов). В это случае час на срабатывание первой задачи получается наугад устанавливаю.
Вчера только все парсилось. Сегодня нажимаю "проверка", а в модалке висит только надпись "Загрузка..." в логах ничего (((
Добрый день! Такой же вопрос... кто может подсказать, как работать с https://?
Подскажите, как удалять созданные парсером ноды, которые перестали соответствовать "Коду проверки для дальнейшего парсинга страницы".
Старые страницы нужно постоянно перезаписывать, так как там меняются данные (биржа фриланса - меняются кол-во откликов, время сколько осталось), но когда проект завершён - нельзя откликнуться или удалён - страница 404, то такие страницы нужно как-то удалить автоматом, которые раньше были скачаны, есть решение как именно удалять?
>>Добрый день! Такой же вопрос... кто может подсказать, как работать с https://?
Автор использовал метод drupal_http_request, у которого куча косяков с бесплатными сертификатами, прокси и т.д. Почитайте комментарии в API метода, наверняка найдёте там решение.
Добрый день!
Вопрос по taxonomy.
Есть код:
При проверке все нормально отрабатывает, но при парсинге термины не вставляются в материал. Если вставить произвольный текст
, вместо переменной массива, то он вставляется в материал. Но у донора все термины разные. В чем ошибка?
Добрый день.
Перечитал все комментарии и было упоминание про то, что можно в одну ноду сделать два задания парсера, ты указал ему использовать Remote ID.
Бьюсь уже 2 дня, ни чего не получается, все время создается новая нода.
Помоги мне добрый человек.
Я в первом парсере создаю Remote ID.
А что и где нужно указать во втором, чтобы второй парсер обновлял имеющуюся ноду, а не создавал новую.
@Алексей сделать чтобы два задания обновляли одну ноду нельзя
Добавить комментарий