Ошибка JavaScript execution error (CloudFlare)

malexoid

A-Parser Enterprise License
A-Parser Enterprise
Версия a-parser: 1.2.1191 (Linux)
Проблема

При работе JS парсера периодически возникает ошибка, по всей видимости это не корректно срабатывает обход CF
Если несколько раз позапускать этот код, чтобы срабатала защита CF в определенный момент, то получим ошибку
Код:
class Parser {
    constructor() {
        this.defaultConf = {
            version: '0.1.30',
            results: {
                flat: [
                    ['title', 'HTML title'],
                ]
            },
            results_format: '$query: $title\\n',
            parsecodes: {
                200: 1,
            },
            max_size: 200 * 1024,
        };
    }

    *parse(set, results) {
        this.logger.put("Start scraping query: " + set.query);

        let data_image = "https://beton-forum.ru/wp-content/cache/thumb/fc/a8ba0cc679178fc_600x550.jpg";
        
        //check data_image return 200 code
        let LocalResp = yield this.request('HEAD', data_image, {}, {
            recurse: 0,
            parsecodes: {200: 1},
            max_size: 30*1024*1024,
            use_proxy: 0,
            browser: 1,
            bypass_cloudflare: 1
        });           

        if(!LocalResp.success) {
            this.logger.put("Image "+data_image+" not correct! ignore it!");

            results.success = false;
        } else {
        
            this.logger.put("Image "+data_image+" OK!");
            results.success = true;
        }

        return results;
    }
}

Полностью текст ошибки из лога:
Apr 12 10:11:37.36047 [master] NodeJS console: TypeError: AsyncHTTPX Internal Error: Cannot read property 'includes' of undefined
at AsyncHTTPX._bypassCloudFlare (evalmachine.<anonymous>:1:19375)
at runMicrotasks (<anonymous>)
at processTicksAndRejections (node:internal/process/task_queues:115:5)
at async AsyncHTTPX.request (evalmachine.<anonymous>:1:12302)
at async JS_test.__nativeRequest (evalmachine.<anonymous>:1:17541)
at async JS_test.__asyncGenCaller (evalmachine.<anonymous>:1:3163)
Apr 12 10:11:37.36109 [master] JavaScript execution error(JS::test, query: vcvxcv): TypeError: AsyncHTTPX Internal Error: Cannot read property 'includes' of undefined
at AsyncHTTPX._bypassCloudFlare (evalmachine.<anonymous>:1:19375)
at runMicrotasks (<anonymous>)
at processTicksAndRejections (node:internal/process/task_queues:115:5)
at async AsyncHTTPX.request (evalmachine.<anonymous>:1:12302)
at async JS_test.__nativeRequest (evalmachine.<anonymous>:1:17541)
at async JS_test.__asyncGenCaller (evalmachine.<anonymous>:1:3163) at build/core.to_build.pl line 63656.
Скрин ошибки:
upload_2021-4-12_10-9-39.png
 
Добрый день, используйте экспериментальный обход капчи.
Если необходимо получить только заголовки ответа, то можно использовать опцию onlyheaders

g862g_210412093702.png
 
предыдущий ответ не совсем верный, правильно использовать именно опцию
Код:
bypass_cloudflare: 1,

в 1.2.1193(альфа) исправлена ошибка, также стоит учесть что обход CloudFlare доступен только из парсеров с API v2
 
Назад
Верх