Добрый день, При работе с Shop::Wildberries:
roductInfo были обнаружены баги
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
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;
}
}