1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
  2. Вступайте в наш Telegram чат: https://t.me/a_parser Нас уже 2600+ и мы растем!
    Скрыть объявление

Два парсера и запросы

Тема в разделе "Техническая поддержка", создана пользователем Zlodeys, 12 ноя 2017.

  1. Zlodeys

    Zlodeys A-Parser Pro License
    A-Parser Pro

    Регистрация:
    2 фев 2016
    Сообщения:
    51
    Симпатии:
    30
    Всем привет.
    Подскажите как сделать следующее.

    Имеем первый парсер net:http Собирает с донора название статьи, и сохраняет в p1.name с последующим сохранением в txt.
    Так же в задание есть второй парсер ютуб в этом же задание.
    По логике первый парсер парсит название, второй парсит ссылку на ютуб.
    Делаю запрос вот так https://image.prntscr.com/image/zjU3aUK0SBanAXrUQPIClQ.png
    Настройки самого парсера https://image.prntscr.com/image/gxe333tqSJ6SJw52PRsgCQ.png
    Но запрос получается пустым. https://image.prntscr.com/image/BxiLZLqFSDyVEeqKDzkSFw.png Хотя если прописать в ручную то запрос делается. https://image.prntscr.com/image/GgnOMtxRRaOSZJvE8wNVIw.png
    https://image.prntscr.com/image/fTwnExdKStq17eZ8ANtKUA.png
    Понимаю что не передается $p1.name
    Скажите что не правильно делаю?
    В конечном итоге нужно сохранить в txt
    название статьи;ссылка на ролик
     
    #1 Zlodeys, 12 ноя 2017
    Последнее редактирование: 13 ноя 2017
  2. Support

    Support Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    16 мар 2012
    Сообщения:
    4.375
    Симпатии:
    2.105
    Здравствуйте.
    Передача данных между парсерами в рамках одного задания в обычном пресете невозможна. Используете JS-парсеры, там можно реализовать такую логику.
     
    Zlodeys нравится это.
  3. Zlodeys

    Zlodeys A-Parser Pro License
    A-Parser Pro

    Регистрация:
    2 фев 2016
    Сообщения:
    51
    Симпатии:
    30
    Здравствуйте, Спасибо за ответ.
    Если не трудно, не покажите пример логики JS-парсера? У меня есть но под гугл, но что то не совсем там понятно.

    Если взять за пример простейший пресет.
    https://image.prntscr.com/image/FG5ugDZsQ-GOtZ4ul-5QTQ.png

    Как сделать запрос в ютуб и вывести (только первый $serp.1.link) в результат $p1.title;ссылка на ролик
    Буду очень признателен)
     
  4. Support

    Support Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    16 мар 2012
    Сообщения:
    4.375
    Симпатии:
    2.105
  5. Zlodeys

    Zlodeys A-Parser Pro License
    A-Parser Pro

    Регистрация:
    2 фев 2016
    Сообщения:
    51
    Симпатии:
    30
    Спасибо. Жалко что после приведенных примеров стало еще запутаннее... Все из за алгоритма работы. Мне нужен как описан выше, но в примерах там по несколько парсер что усложняет задачу. По крайне мере для меня.
     
  6. Zlodeys

    Zlodeys A-Parser Pro License
    A-Parser Pro

    Регистрация:
    2 фев 2016
    Сообщения:
    51
    Симпатии:
    30
    Да это пиз* темный лес.
     
  7. Support

    Support Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    16 мар 2012
    Сообщения:
    4.375
    Симпатии:
    2.105
    По вашей задачи все предельно просто:
    • используя yield this.request получаете name
    • используя yield this.parser.request, обращаетесь к SE::Youtube, передавая в качестве запроса полученный name
    • записываете в переменные полученные данные
    Весь функционал описан в Документации: https://a-parser.com/wiki/js-parsers/
    Если у вас нет возможности изучать документацию и писать парсеры самостоятельно, то вы можете обратиться в платную поддержку за написанием: http://a-parser.com/threads/1795/
     
  8. Zlodeys

    Zlodeys A-Parser Pro License
    A-Parser Pro

    Регистрация:
    2 фев 2016
    Сообщения:
    51
    Симпатии:
    30
    Конечно просто. [​IMG]

    Обратится то за платным решением это конечно выход я не спорю, со штудированием вики тоже не поспоришь, но мой вопрос но это настолько "будничная задача" и как Вы сами сказали простейшая задача, что делается в две строки. Взять запрос и вывести результат. Это не сверхестественый парсер. Чтож видимо с каждым подобным вопросом нужно стучатся в платную помощь. Спасибо.
     
    #8 Zlodeys, 13 ноя 2017
    Последнее редактирование: 13 ноя 2017
    Dmitron, MrSlim и vipuncle нравится это.
  9. Zlodeys

    Zlodeys A-Parser Pro License
    A-Parser Pro

    Регистрация:
    2 фев 2016
    Сообщения:
    51
    Симпатии:
    30
    Запрос делает, но не выводит результат $p1.preset
    https://image.prntscr.com/image/ts3CDDRETGuGiv1JywFyVw.png
    Что не так то?
    Код:
    class Parser {
        constructor() {
            this.defaultConf = {
                version: '0.1.18',
                results: {
                    flat: [
                        ['key', 'Keyword'],
                    ]
                },
                results_format: "$link",
                search_engine: 'SE::YouTube',
            };
            this.editableConf = [
                ['SE_YouTube_preset', ['combobox', 'SE::YouTube preset']],
            ];
        }
    
        
        *parse(set, results) {
            return yield* set.lvl == 0 ? this.parseSE(set, results) : this.parseTitle(set, results);
        }
     
        *parseSE(set, results) {
            this.logger.put("Start scraping query: " + set.query);
    
            this.logger.put(`Use ${this.conf.search_engine}`);
            let SEresp = yield this.parser.request(
                this.conf.search_engine,
                this.conf[this.conf.search_engine.replace(/::/, '_') + '_preset'],
                set.query
            );
    
            if(SEresp.info.success) {
                let link_count = 0;
                let step = this.conf.search_engine == 'SE::YouTube' ? 3 : 6;
        
                return results;
            }
            else {
                this.logger.put(`Error scraping ${this.conf.search_engine}`);
                results.success = 0;
                return results;
            }
        }
    
     
    }
     
  10. Support

    Support Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    16 мар 2012
    Сообщения:
    4.375
    Симпатии:
    2.105
    К сожалению, мы не можем на каждый вопрос делать и выкладывать готовые решения, у нас попросту на это не хватит времени и ресурсов.

    Вы выводите в результат несуществующую переменную.
     
  11. Zlodeys

    Zlodeys A-Parser Pro License
    A-Parser Pro

    Регистрация:
    2 фев 2016
    Сообщения:
    51
    Симпатии:
    30
     
  12. Support

    Support Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    16 мар 2012
    Сообщения:
    4.375
    Симпатии:
    2.105
    Вы в link ничего не записываете. Да и логика парсера не соответствует вашей задаче. Я выше описывал примерный алгоритм работы, а судя по вашему коду, у вас совсем другое.
     
  13. chazzzzz1910

    chazzzzz1910 A-Parser Enterprise License
    A-Parser Enterprise

    Регистрация:
    20 авг 2018
    Сообщения:
    7
    Симпатии:
    0
    Задача подстановки значения из результатов одного парсера в запросы другого парсера в пределах одного задания до сих пор решается только через JS парсер?
     
  14. Support

    Support Administrator
    Команда форума A-Parser Enterprise

    Регистрация:
    16 мар 2012
    Сообщения:
    4.375
    Симпатии:
    2.105
    @chazzzzz1910, да, только с помощью JS парсеров.
     

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