имя файла - часть урла

Тема в разделе "Решение различных задач по парсингу", создана пользователем pps2003, 25 ноя 2012.

  1. pps2003

    pps2003 New Member Пользователи

    Регистрация:
    25 ноя 2012
    Сообщения:
    5
    Подскажите пож-ста
    Как мне сделать чтоб при парсинге сайта каждая статья сохраналась в свой файл под именем урла с которого она была спарсена
    пример

    site.ru/stat_1.html сохранилась в stat_1.txt
    site.ru/forex-analitika.html сохранилась в forex-analitika.txt
     
  2. kagorec

    kagorec Администратор Команда форума Администратор

    Регистрация:
    3 янв 2011
    Сообщения:
    4.432
    Адрес:
    Latvia
    В шаблоне вывода используйте на отдельной строке
    DOCSNAMES_[FIRST_REPLACE(site.ru/|{break}.html|)]<CD_DOCURL!>[/FIRST_REPLACE]
     
    Последнее редактирование: 25 ноя 2012
  3. pps2003

    pps2003 New Member Пользователи

    Регистрация:
    25 ноя 2012
    Сообщения:
    5
    спасибо работает
    1. а как сделать чтоб имя файл обрезалось до, например 5 символов
    урл site.ru/kakaracha.html
    файл kakar.txt
    2. как сделать чтоб в имени файл все после какого то символа, например -, удалялось
    урл site.ru/kak-ara-ch-a.html
    файл kak.txt
     
  4. nikolas1612

    nikolas1612 Member Пользователи

    Регистрация:
    27 ноя 2011
    Сообщения:
    439
    1 добавление в поиск-замену регулярных выражений. конкретно в этом случае возможный вариант
    HTML:
    re:(site\.ru.{6}).*|$1
    2 -{skip}|, в более сложных случаях - см. п.1.

    и еще посмотрите в сторону макроса <short>. собственно, он заточен под решение простых ситуаций типа тех, которые вы описали. любое усложнение задачи приведет вас в область регулярных выражений.
     
    Последнее редактирование: 26 ноя 2012
  5. zhivenkoff

    zhivenkoff New Member Пользователи

    Регистрация:
    15 июн 2018
    Сообщения:
    3
    Город:
    Bangkok
    Есть URL site.ru/2007/03/adress-stranitsy/

    Нужно чтобы при парсинге:
    1. Создался файл с URL adress-stranitsy.html
    2. Файл положить в папку 03, лежащую в папке 2007, лежащую в основной директории

    При использовании конструкции DOCSNAMES_[FIRST_REPLACE(site.ru/|{break}.html]<CD_DOCURL!>[/FIRST_REPLACE]:

    1) в основной директории создается папка site.ru (OК)
    2) в ней создается папка 2007 (ОК)
    3) в ней создается папка 03 (ОК)
    4) в ней создается папка adress-stranitsy (не ОК, так как нужно чтобы создавался файл adress-stranitsy.html)

    Пробовал вставлять конструкцию [DOCNAME][CLEAR][TRANSLITE][NOFOLDER]<CD_DOCPATH!>[/DOCNAME]

    <CD_DOCPATH!> описывается следующим образом: Вставляет обрезанную от конца до последнего слеша ссылку того веб-документа с которого производится парсинг

    По логике вещей (может у меня с логикой проблемы?), из site.ru/2007/03/adress-stranitsy/ при использовании данного макроса мы должны получить как раз adress-stranitsy обрезанный от последнего слеша. Но в итоге я получаю site.ru200703adress-stranitsy

    Что я делаю не так?
     
  6. zhivenkoff

    zhivenkoff New Member Пользователи

    Регистрация:
    15 июн 2018
    Сообщения:
    3
    Город:
    Bangkok
    О, нашел проблему. Она в слеше. Слеш убил конструкцией [DOCNAME][CLEAR][TRANSLITE][NOFOLDER][FIRST_REPLACE(Ссылки недоступны для гостей

    Теперь из распаршиваемого урла Ссылки недоступны для гостей получается файл с адресом address.html

    Осталось по папкам раскидать. Пойду думать. Кто придумал енту регулярку богомерзкую - ума не приложу. Как жить с ней, нам, простым гуманитариям...
     
    xLime нравится это.

Поделиться этой страницей