Ссылку дайте на сайт который хотите спарсить
Следуйте инструкциям в видео ниже, чтобы узнать, как установить наш сайт как веб-приложение на главный экран вашего устройства.
Примечание: Эта функция может быть недоступна в некоторых браузерах.
Util::ReCaptcha2. В качестве запроса нужно передавать sitekey[ПРОБЕЛ]url, где sitekey - это sitekey рекаптчи, url - урл страницы, на которой выдалась рекаптча.let recaptcha = yield this.parser.request('Util::ReCaptcha2', this.conf.Util_ReCaptcha2_preset, {}, sitekey + ' ' + url);
this.query.add(link) // this.query.add(link, 1)
Здравствуйте. Указанный вам пресет работает.не работает https://a-parser.com/resources/20/ собственно проблема в:
если ниже сделать this.logger.put(JSON.stringify(this.query));Код:this.query.add(link) // this.query.add(link, 1)
тут же выдаст пустой объект, и не будет запущен второй парсер
SE::Google, в котором кол-во попыток будет побольше( например 100 ), и указанием его в настройках JS::TextFromSE. Либо в Search engine выбрать яндекс и указать пресет для него.в this.query.add нельзя указать уровень на который добавляется запрос. Можно указать максимальный уровень до которого будет добавляться. Добавляется на следующий уровень, то есть если сейчас set.level == 1, то запрос добавится на второй уровень.this.query.add(link);
без maxLevel
а проверяем на set.lvl, получается по дефолту там 1 будет при добавлении, потому как в доках про это ничего нет.
Здравствуйте, скажите, пожалуйста, есть ли какая-нибудь библиотека, чтобы можно было работать с DOM страницы? И возможно ли в парсере добавлять библиотеки?
Регулярки не подходят для большого количества моих задач.
npm i jsdom
const jsdom = require("jsdom");
class Parser {
constructor() {
this.defaultConf = {
version: '0.1.35',
results: {
flat: [
['result', 'Captcha result'],
]
},
results_format: '$result\\n',
parsecodes: {
200: 1,
},
max_size: 200 * 1024,
Util_AntiGate_preset: 'default'
};
this.editableConf = [
['Util_AntiGate_preset', ['combobox', 'Util::AntiGate preset']]
];
}
*parse(set, results) {
if(this.conf.Util_AntiGate_preset == 'default') {
this.logger.put('Select antigate preset');
results.success = 0;
return results;
}
let response = yield this.request('GET', 'https://internet2.btk.gov.tr/sitesorgu/', {}, {
decode: 'auto-html',
});
if(!response.success) {
this.logger.put('Error open page');
results.success = 0;
return results;
}
let captchaUrl;
try {
captchaUrl = response.data.match(/<img id="security_code_image" src="([^"]+)/)[1];
} catch(e) {
this.logger.put('Captcha not found');
results.success = 0;
return results;
}
let captchaResp = yield this.captcha.recognize(this.conf.Util_AntiGate_preset, captchaUrl, {})
if(!captchaResp.answer) {
this.logger.put('Captcha recognize failed');
results.success = 0;
return results;
}
response = yield this.request('GET', 'https://internet2.btk.gov.tr/sitesorgu/', {
captcha: captchaResp.answer,
submit: 'Submit'
}, {
decode: 'auto-html',
});
if(!response.success) {
this.logger.put('Error checking captcha');
results.success = 0;
return results;
}
if(!/İlgili Kararlar/.test(response.data)) {
this.logger.put('Bad captcha');
yield this.captcha.reportBad(this.conf.Util_AntiGate_preset, captchaResp.id, {})
results.success = 0;
return results;
} else {
this.logger.put('Good captcha');
results.result = 'Success';
}
results.success = 1;
return results;
}
}
A-Parser - это профессиональная платформа для сбора данных промышленного масштаба: 10 000+ потоков, 110+ парсеров и гибкость Node.js. Автоматизируйте задачи в SEO, e-commerce и арбитраже трафика с непревзойденной скоростью и масштабируемостью
Нужна помощь с настройкой или работой парсера? Напишите в поддержку, поможем довести все до результата.
Написать в поддержку