Ловите ошибки - по завершению отчёт в каких - оборачиваете в обработку ошибки, и можете там поставить ручное управление. Запускаете в записи. Ловите реальную ситуацию.... Как то так.
[Сделано]Разные ip для разных сайтов
-
@support тоесть в данный момент проблематично реализовать разные прокси для разных сайтов при условии что для сайта 1 нужны ипв4 для сайта 2 ипв6 и переход на сайт 2 производится при клике на ссылку на сайте 1 и на сайте 1 ипв6 не поддерживается
(ипв6 туннелирование через ипв4) -
@35xakers Я рассматриваю профили как дополнительное удобство, а не как критическую необходимость.
тоесть в данный момент проблематично реализовать разные прокси для разных сайтов при условии что для сайта 1 нужны ипв4 для сайта 2 ипв6 и переход на сайт 2 производится при клике на ссылку на сайте 1 и на сайте 1 ипв6 не поддерживается
(ипв6 туннелирование через ипв4)Так должно работать
Устанавливаем прокси для сайта 1(ипв4) Заходим на этот сайт. Устанавливаем прокси для сайта 2(ипв6) Клик по ссылке.Первый сайт будет видеть ипв4 прокси, второй сайт - ипв6
туннелирование не существенно, главное, чтоб прокси работал)
-
@support said in Разные ip для разных сайтов:
Есть у меня идея сделать разные настройки заголовков, прокси, и данных браузера для разных сайтов или вкладок
Я давно хотел предложить эту идею) У себя пока сделал так:
function BASExtended() { } BASExtended.prototype.setProfile = function (profile) { BE.profile = profile; reset()! if (BE.profile.userAgent) { agent(BE.profile.userAgent)! } if (BE.profile.proxy) { proxy(BE.profile.proxy)! } if ((BE.profile.cookies && (typeof (BE.profile.cookies) === 'object'))) { restore_cookies(JSON.stringify(BE.profile.cookies))! } resize(BE.profile.resolution.w, BE.profile.resolution.h)! }; BE = new BASExtended(); BE.setProfile({ proxy: false, userAgent: 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:52.0) Gecko/20100101 Firefox/52.0', cookies: false, resolution: {w: 800, h: 600} }); -
Асинхронные функции не будут работать в if, нужно оборачивать в специальный _if
-
@support да, я писал код еще до того, как узнал все тонкости api. Но он все равно работает, правда мой подход не совсем правильный (получается каша из асинхронных функций, они не выполнятся в нужном порядке), но перед загрузкой страницы все равно успевают выполниться. Вчера переделал правильный вариант
function BASExtended() { this.isLog = false; } BASExtended.prototype.log = function (msg) { if (BE.isLog) { log(msg); } }; BASExtended.prototype.callAsyncFunct = function () { var tmp = _arguments(); var args = []; var funct = tmp.shift(); var code = ''; for (var i = 0; i < tmp.length; i++) { eval('var arg_' + i + '=tmp[i]'); args.push('arg_' + i); } var asyncFunct = null; if (typeof (funct) === 'function') { code = 'asyncFunct = function(){funct(' + args.join() + ');}'; } else { code = 'asyncFunct = function(){' + funct + '(' + args.join() + ');}'; } BE.log('callAsyncFunct, ' + code); eval(code); _call(asyncFunct, null)! }; BASExtended.prototype.setProfile = function (profile) { BE.profile = profile; BE.log('Reset'); reset()! _if(BE.profile.userAgent, function () { _call(BE.callAsyncFunct, ['BE.setUserAgent', BE.profile.userAgent])!//~ })! _if(BE.profile.proxy, function () { _call(BE.callAsyncFunct, ['BE.setProxy', BE.profile.proxy])!//~ })! _if(BE.profile.cookies && (typeof (BE.profile.cookies) === 'object'), function () { _call(BE.callAsyncFunct, ['BE.setCookies', BE.profile.cookies])! })! _call(BE.callAsyncFunct, ['BE.setResolution', (BE.profile.resolution && BE.profile.resolution.w ? BE.profile.resolution.w : 800), (BE.profile.resolution && BE.profile.resolution.h ? BE.profile.resolution.h : 600)])! }; BASExtended.prototype.setProxy = function (p) { BE.log('setProxy: ' + p); proxy(p)! }; BASExtended.prototype.setCookies = function (cookies) { BE.log('Set cookies: ' + (JSON.stringify(cookies))); restore_cookies(JSON.stringify(cookies))! }; BASExtended.prototype.setResolution = function (w, h) { BE.log('setResolution: ' + w + 'x' + h); resize(w, h)! }; BE = new BASExtended(); BE.setProfile({ proxy: false, userAgent: 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:52.0) Gecko/20100101 Firefox/52.0', cookies: false, resolution: {w: 800, h: 600} }); -
@blackhacker Да, так лучше