Парсинг картинок и файлов

Навигация:

Основные положения
Задание имен файлов, переименование файлов, задание пути сохранения
Скачивание файлов из FTP
Загрузка скачанных файлов на FTP
Выводить содержимое скачанных файлов в виде BASE64-кода
Исключение повторного скачивания файлов
Отключить скачивание картинок с указанным(и) URL
Отключить сохранение картинок с указанным(и) размерами (вместо них выводить указанный текст)
Как скачивать файлы размером более 1 ГБ
Типичные ошибки при задании границ парсинга с адресами файлов и картинок, приводящие к ошибкам их загрузки
Дополнительные материалы

Для возврата к меню навигации используйте клавишу home



Основные положения


Для загрузки файлов на диск при парсинге контента нужно поместить в редактор шаблона вывода макрос 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! — граница парсинга с именем файла.

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

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

Примечание: Для задания нумерации папок используйте макрос [INT_ID], настроив его должным образом.


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

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

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


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

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

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


Если нужно сохранять файлы, на другой локальный диск или изменить корневой путь для сохранения файлов (который будет отличаться от пути сохранения контента), например, вы сохраняете результирующие CSV-файлы в C:\Content\, а картинки нужно сохранять в C:\ParsingFiles\, используйте параметр {path} для макроса [DFN]:

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

В этом случае файлы будут сохраняться в папку C:\ParsingFiles\files\


Также обратите внимание на параметр [ALL] у макроса [DFN]

Content Downloader

Content Downloader




Скачивание файлов из 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>






Отключить скачивание картинок с указанным(и) URL


Content Downloader




Отключить сохранение картинок с указанным(и) размерами (вместо них выводить указанный текст)


Content Downloader




Как скачивать файлы размером более 1 ГБ


Content Downloader




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


Content Downloader




Дополнительные материалы


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


1 Star2 Stars3 Stars4 Stars5 Stars (оценок: 5, средний балл: 4,80)
Загрузка...
Автор: 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