Не работает парсер

Surfivolga

A-Parser Enterprise License
A-Parser Enterprise
Проблема в том, что примерно год назад парсер работал, а сейчас перестал. В настройках парсера ничего не меняли, в скрипте тоже. Как починить парсер, чтобы он начал опять работать?

Скрипт парсера для проверки уникальности карточек товара через API https://content-watch.ru/api/
Код:
class Parser {
    constructor() {
        this.defaultConf = {
            version: '0.1.4',
            results: {
                flat: [
                    ['text', 'text'],
                    ['percent', 'percent'],
                    ],
                arrays: {
                    matches: ['Совпадения',[
                        ['url', 'URL'],
                        ['percent', 'Percent']
                    ]],
                }
            },
            results_format: '$query: $text\\n',
            key_api: '123456789',
            parsecodes: {
                200: 1,
            },
            max_size: 200 * 1024,
        };
        this.editableConf = [
            ['key_api', ['textfield', 'Key Api']],
        ];
    }

    *parse(set, results) {
        let text = yield * this.getText(set.query);
        if(text){
            text = this.utils.removeHtml(this.utils.urlFromHTML(text));
            results.text = text;
            results = yield* this.getContentWatch(text,results);
            results.success = 1;
        }
        return results;
    }
    *getText(url){
        let response = yield this.request('GET',url,{},{
            'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36',
             decode: 'auto-html',
        });
        if(response.success){
            let descrText = response.data.match(/"mainProductContent":\s*\[\{\s*"product":\s*{\s*"longDescription":\s*"(?:<p>\s*)?(.+?)(?:\s*\/p>)?",\s*"/);
            descrText = descrText ? descrText[1] : false;
            return descrText;   
        }
        return false;
    }
    *getContentWatch(text,results){
        let response = yield this.request('POST', 'https://content-watch.ru/public/api/',{
            'key': this.conf.key_api,
            'text': text,
            'test': 0,

         },{
            'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36',
             decode: 'auto-html',
        });
        if(response.success){
            results.matches = [];
            let json = JSON.parse(response.data);
            results.percent = json.percent ? json.percent : '';
            if(json.matches) {
                json.matches.map(elem => {
                    results.matches.push(elem.url, elem.percent);
                });
            } else if(json.error) {
                this.logger.put('Error: ' + json.error);
            }
        }
        return results;
    }
}
 
Здравствуйте!

Посмотрите в Тестовом парсинге где именно и на каком шаге происходит ошибка.
Также, чтобы протестировать ваш код, нам нужен ваш key_api для content-watch.ru. Напишите в @aparser_bot с ссылкой на эту тему и вашим key_api для content-watch.ru для теста
 
Назад
Верх