Автоматизация 2-х проектов с передачей [PARAM] CookBook

Тема в разделе "Решение различных задач по парсингу", создана пользователем Kreol, 29 июл 2014.

  1. Kreol

    Kreol Модератор Команда форума Модератор

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    Доброго времени суток!
    Иногда для автоматизации парсинга сайта бывает довольно трудно сделать все действия в рамках одного проекта, особенно это касается передачи параметров макросом [PARAM].
    Т.е. в ситуации когда мы можем только формировать начальный урл с нужными параметрами для последующего парсинга в основном проекте.
    Если рассмотреть более детально то получить урл вида:
    Код:
    http://site.ru[PARAM]:<URL>http://site.ru<KAT><CD_GRAN_1!><KAT2><CD_GRAN_2!><->
    В процессе формирования данной ссылки специфика макроса PARAM формирует из того что мы хотим ссылку вида:
    Код:
    http://site.ru:<URL>http://site.ru<KAT><CD_GRAN_1!><KAT2><CD_GRAN_2!><->
    т.е. ключевое слово PARAM пропадает и ссылка соответственно перестает работать.

    Как быть в такой ситуации? ведь передача параметров, это то ради чего все и затевалось.
    Тогда, включив логику и воображение, а также при необходимости дружеский пинок :laugh: мы пытаемся найти решение таким способом.
    Вместо формирования финальной строки урл (имеется ввиду ключевой макрос [PARAM]), которую потом мы будем загружать в другой проект, мы делаем шаблон такого вида:
    Код:
    http://site.ru###<URL>http://site.ru<KAT><CD_GRAN_1!><COUNT><CD_GRAN_2!><->
    и оставляем формировать документ txt формата при этом явно указывая имя документа (с опцией перезаписи).
    Вид шаблона вывода:
    Код:
    <CD_DOCURL!>###<URL><CD_DOCURL!><KAT><CD_GRAN_1!><COUNT><CD_GRAN_2!><->[DOCNAME]file_link.txt[/DOCNAME]
    После этого открываем форму "Автоматизация парсинга контента" (кнопочка AUTO в блоке "Парсинг и обработка") и вписываем файл vbs скрипта поиска/замены. (см рис.)
    Внутренность файла: Replace.vbs
    Код:
    Const ForReading = 1
    Const ForWriting = 2
    
    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objFile = objFSO.OpenTextFile("c:\\путь к файлу\file_link.txt", ForReading)
    
    strText = objFile.ReadAll
    objFile.Close
    strNewText = Replace(strText, "###", "[PARAM]:")
    
    Set objFile = objFSO.OpenTextFile("c:\\путь к файлу\file_link.txt", ForWriting)
    objFile.WriteLine strNewText
    objFile.Close
    Данный скрипт будет формировать ссылки нужного нам вида, готовые к дальнейшему употреблению!
    Также не забываем про то, что срипту нужно время для обработки.
    Успехов.
     

    Вложения:

  2. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.431
    Адрес:
    Latvia
    А лучше посмотреть "лог" или Ссылки недоступны для гостей :nod:
    И на ум придет стандартное решение замены (без применения подключаемого vbs скрипта)
    Код:
    [REPLACE(___|)]<CD_DOCURL!>[PAR___AM]:[/REPLACE]<URL><CD_DOCURL!><KAT><CD_GRAN_1!><COUNT><CD_GRAN_2!><->[DOCNAME]file_link.txt[/DOCNAME]
     
  3. Kreol

    Kreol Модератор Команда форума Модератор

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    Я думаю этот метод не только для этого можно использовать))). :emo:
    А вообще я понял в чем был гвоздь::clock:
    Если делать замену таким образом:
    Код:
    [REPLACE(___|[PARAM]:)]<CD_DOCURL!>___[/REPLACE]<URL><CD_DOCURL!><KAT>11111<COUNT>22222<->[DOCNAME]file_link.txt[/DOCNAME]
    как раз тогда получается ситуация, что [PARAM] пропадает. (до этого не обращал внимания)
    А если сделать как посоветовал господин kagorek то работает.
     
  4. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.431
    Адрес:
    Latvia
    Ага во посте №2 метод "сначало испортим, а потом исправим макрос", главное в порядке очереди ))
     
  5. Kreol

    Kreol Модератор Команда форума Модератор

    Регистрация:
    6 янв 2013
    Сообщения:
    2.666
    а там разве есть про парам? Или куда смотреть? Что-то я не совсем понял и скорее всего не я один.
     
  6. kagorec

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

    Регистрация:
    3 янв 2011
    Сообщения:
    4.431
    Адрес:
    Latvia
    Список порядка выполнения макросов как подсказка "использовать чтото подходящее из последних выполняемых" , в нашем случае REPLACE.
    п.с. PARAM - если просматривать лог то можно понять что этот макрос выводит инфорацию на уровне границ, тоесть раньше всех макросов обработки.
     

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