Ошибка [1.2.2116] Shop::Wildberries::ProductInfo - баги при выполнении

  • Автор темы Автор темы BrainQ
  • Дата начала Дата начала

BrainQ

A-Parser Enterprise License
A-Parser Enterprise
Добрый день, При работе с Shop::Wildberries::ProductInfo были обнаружены баги

1 - Не парсятся ссылки на товар, для ряда доменов
www.wildberries.ru - отрабатывает корректно ( https://www.wildberries.ru/catalog/145481466/detail.aspx )
Посмотреть вложение 3210

Однако если посетить страницу со списком доменов (https://wildberries.eu) и попытаемся распарсить другие домены - получаем ошибку

https://www.wildberries.by/product?card=91121234&option=146598523
Посмотреть вложение 3211

https://global.wildberries.ru/product?card=91121234&option=146598523
Посмотреть вложение 3212

для https://uz.wildberries.ru/catalog/159263212/detail.aspx отрабатывает корректно

2 - При использовании this.parser.request() - может возникнуть внутренняя ошибка при парсе результата
https://www.wildberries.ru/catalog/145481466/detail.aspx
Посмотреть вложение 3213
при использовании this.parser.request() код скрапера прилагаю
Посмотреть вложение 3214




Код:
export class JS_PARSER_DEV extends BaseParser {
    static defaultConf: typeof BaseParser.defaultConf = {
        version: "1.0.1",
        useproxy: 0,
        proxy: "",
        address: "Москва",
        longitude: "37.6201",
        latitude: "55.753737",
        proxyChecker: "manual",
        results: {
            flat: [
                ["data", "Data"],
            ],
        },
        results_format: "Status: $success\n Result: $data",
    };
    static editableConf: any = [
        ["proxy", ["textfield", "Manual Proxy"]],
        ["address", ["textfield", "Address"]],
        ["longitude", ["textfield", "Longitude"]],
        ["latitude", ["textfield", "Latitude"]],
    ];
    async parse(set: any, results: any) {
        let currentProxy = null;
        if (this.conf.useproxy && this.conf.proxy) {
            await this.proxy.set(this.conf.proxy, true);
            currentProxy = await this.proxy.get();
        }
        const config = {
            address: this.conf.address,
            lon: this.conf.longitude,
            lat: this.conf.latitude,
            useproxy: this.conf.useproxy,
            resultArraysWithObjects: 1,
            parsecodes: {
                200: 1,
                201: 1,
                204: 1,
            },
        }
        let response: any = await this.parser.request("Shop::Wildberries::ProductInfo", "default", config, set.query)
        if (response.success) {
            results.data = JSON.stringify(response);
        } else {
            results.error = "WILDBERRIES_PRODUCT_SHOP_ERROR: BAD_REQUEST";
            results.data = results.error
        }
        results.success = response.success
        return results;
    }
}
 
Назад
Верх