Загрузка файлов и картинок при парсинге контента

Для загрузки файлов на диск при парсинге контента нужно поместить в редактор шаблона вывода макрос DOWNLOADFILE:

1
<DOWNLOADFILE>Абсолютная или относительная ссылка на файл</DOWNLOADFILE>

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




Переименование файлов


Присваивать загружаемым файлам определенные имена можно макросом шаблона вывода [DFN]. Макрос [DFN] прописывается перед каждым DOWNLOADFILE в шаблоне вывода, например:

1
2
3
[DFN]папка/подкапка0/приветики25[/DFN]<DOWNLOADFILE>http://sbfactory.ru/images/box.jpg</DOWNLOADFILE>
[DFN]папка/подкапка1/приветики77[/DFN]<DOWNLOADFILE>http://sbfactory.ru/images/box.jpg</DOWNLOADFILE>
[DFN]папка/подкапка2/приветики33[/DFN]<DOWNLOADFILE>http://sbfactory.ru/images/box.jpg</DOWNLOADFILE>

При парсинге макрос(ы) [DFN] будет(ут) удалятся из сохраняемых документов.

1
Другой текст/код [DFN]<CD_GRAN_2!>[/DFN]<DOWNLOADFILE>file url</DOWNLOADFILE> Другой текст/код

Где CD_GRAN_2! — граница парсинга с желаемым именем файла.


Если вы хотите раскладывать файлы по разным папкам, то задайте путь используя символ \

1
Другой текст/код [DFN]имя папки или <CD_GRAN_1!>\<CD_GRAN_2!>[/DFN]<DOWNLOADFILE>file url</DOWNLOADFILE> Другой текст/код

Где CD_GRAN_1! — желаемое имя папки для сохраняемых файлов, а CD_GRAN_2! — граница парсинга с именем файла.


Если требуется назначить только имя папки (имя файла не трогать), просто добавьте в макрос название папки (с символом \ на конце)

1
2
Другой текст/код [DFN]имя папки\[/DFN]<DOWNLOADFILE>file url</DOWNLOADFILE> Другой текст/код
Другой текст/код [DFN]имя папки\имя подпапки\[/DFN]<DOWNLOADFILE>file url</DOWNLOADFILE> Другой текст/код



Если вы хотите задать расширение, то используйте {ext}

1
Другой текст/код [DFN]<CD_GRAN_2!>{ext}jpg[/DFN]<DOWNLOADFILE>file url</DOWNLOADFILE> Другой текст/код

Если расширение не задано, то оно будет определяться автоматически.


Если вы хотите, чтобы файлы с одинаковыми именами перезаписывались (а не создавались новые), то добавьте [REWRITE] в любое место макроса

1
Другой текст/код [DFN][CLEAR][TRANSLITE][NOFOLDER]<CD_GRAN_2!>{ext}jpg[REWRITE][/DFN]<DOWNLOADFILE>file url</DOWNLOADFILE> Другой текст/код

Где также:
[CLEAR] — удалит все лишние символы и опустит регистр всех букв
[TRANSLITE] — преобразует русские буквы в транслит
[NOFOLDER] — не будет переименовывать папку и не создаст подпапки для сохранения файлов (даже если встретятся символы: \, /)


Загрузка файлов из FTP

1
2
<DOWNLOADFILE>ftp://user:password@example.com/pub/file.jpg</DOWNLOADFILE>
<DOWNLOADFILE>ftp://user:password@server:port/pub/file.jpg</DOWNLOADFILE>

Примечание: Файлы с кириллицей в именах из FTP могут не загружаться.


Загрузка скачанных файлов на FTP

Загрузка скачанных макросом DOWNLOADFILE файлов на FTP-сервер включается в «главное меню — настройка — настройка макросов — DOWNLOADFILE» (CheckBox загружать скачанные файлы на FTP).


Результат в виде BASE64-кода

Если вы хотите, чтобы в результат парсинга вставлялся BASE64-код файла (например, для последующей его отправки в подключенный PHP_SCRIPT_5), вставьте внутрь макроса параметр [TOBASE64]

1
<DOWNLOADFILE>[TOBASE64]file url</DOWNLOADFILE>




Исключение повторного скачивания файлов

Content Downloader

ВНИМАНИЕ! При выполнении предпросмотра результатов парсинга добавление записей в файл с данными происходить не будет (добавление записей происходит только при парсинге)!

Content Downloader

Также обратите внимание на логи загрузки и сохранения файла с данными:

Content Downloader

Content Downloader


Важное примечание!


Если вы используете для загрузки нескольких картинок повторяющиеся границы парсинга, то так делать не нужно:

1
<DOWNLOADFILE><CD_CYCLE_GRAN_1!></DOWNLOADFILE>

Нужно нажать ctrl+5 и дописать в шаблон соответствующей повторяющейся границы парсинга:

1
<DOWNLOADFILE>[VALUE]</DOWNLOADFILE>




Дополнительные материалы:
— Скачивание нескольких картинок с использованием повторяющихся границ парсинга
— Изменение размеров изображений, скачиваемых макросом DOWNLOADFILE
— Вывод в результат парсинга контента имен файлов, скачанных макросом DOWNLOADFILE


1 Star2 Stars3 Stars4 Stars5 Stars (оценок: 4, средний балл: 4,75)

Загрузка...
Автор: admin, 9 апреля 2013
Рубрики: Парсинг
Метки:
9 комментариев к сообщению: “Загрузка файлов и картинок при парсинге контента”
  1. гость:

    Добавьте пожалуйста опцию [REWRITE] в NIMG, а то при перезапуске получаются дубли _1, _2.
    Если внутри [DFN] макрос JSONDECODE, в название файлов добавляется JSONDECODE.

    • admin:

      Здравствуйте.

      Спасибо за ваш комментарий!

      С REWRITE для NIMG пока ничего не обещаю (думаю, лучше использовать DOWNLOADFILE), а вот порядок выполнения макроса [JSONDECODE] я доработал. Если вас интересует получение этой доработки до выхода обновления, можете обратится ко мне в Skype SBFactory_support.

      С уважением к вам, Сергей…

  2. гость:

    Если в DFN например первая граница, и в этой границе могут быть самые разные расширения файлов, как добиться сохранения файлов с исходным именем? Если в DFN 1.pdf, файл сохраняется как 1.pdf.pdf, и так далее. Как избавиться от этой самодеятельности?

    • admin:

      Вырезать макросом поиск-замены FIRST_REPLACE подстроку .pdf (и другие расширения) из присвояемого имени файлу. Проблем не вижу…
      PS: Вопросы лучше задавать на форуме http://forum.sbfactory.ru/

      • гость:

        Да это не вопрос, это предложение изменить автоопределение расширения файла. Если я задаю в DFN 1.pdf, хочется чтобы программа сохранила файл именно так. Если я задаю в DFN просто имя 1 (без расширения), и не задано в настройках загрузки расширение (работает автоопределение), хочется чтобы программа взяла расширение из загружаемого файла, и сохранила его как 1.pdf или 1.jpg, в зависимости от загружаемого файла. Сейчас автоопределение заключается в том, что программа дописывает .html к указанной в DFN строке?
        Чтобы сохранить файл под известным мне именем, приходится вместо указания DFN(1.pdf) делать DFN(вырезать 1{ext}вырезать .pdf) — ну зачем?

  3. Артем:

    Здравствуйте,
    Файлы с расширением (.zip) скачиваются на диск без расширения, (.pdf) — нормально.
    В чем причина? Может потому что идут вместе с .pdf?

  4. А можно указать для примера «шаблон имен файлов», просто в мануалах описано задание папки там, расширение, а как к примеру из i_path_b9809080980_d76876876.jpg генерировать img_{часть текущего названия символ к примеру с 5 по 10 для уникальности}_{номер от 1 до 10 например, сколько есть, но только для текущей — одной — страницы, для каждой страницы нумерация идет с 1 до сколько есть}. Ну или просто указать как выглядит текущий шаблон =)

    • admin:

      Здравствуйте.

      Сделайте проще, вставьте в [DFN] макрос [SKU] (генерирует случайное число):
      [DFN][SKU:10D][/DFN]

      Если данное решение вам не подойдет, пожалуйста, обращайтесь к нам на форум http://forum.sbfactory.ru/, постараемся помочь!

      С уважением к вам, Сергей.

Написать комментарий

Вы должны войти чтобы добавить комментарий.

Последние статьи

css.php