[Сделано]Разные ip для разных сайтов
-
@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 Да, так лучше
-
@support Блин оказывается помимо сайта 1 там еще есть сайт прокладка, что-то вроде goo.gl, как бы Я смог справится с этим теперь?
-
@35xakers А вам нужно именно для сайта прокладки установить один прокси, а для следующего сайта - другой?
-
@support сайт прокладка не поддерживает ipv6 прокси как инстаграм (это очень важно так как они намного дешевле и только по этому можно выйти в плюс) а так неважно какой ип именно для прокладки.
-
@35xakers Хорошо сделаю в ближайшей.
-
@support ох, было бы замечательно, жду)
-
@35xakers В 16.5.0 не успел, но будет в ближайшей.
-
@35xakers Теперь прокси и заголовки можно задавать как для урл, которые подходят под маску так и для вкладок.
-
@support я жду ответ уже 3 неделю, помогите пожалуйста https://community.bablosoft.com/topic/878/самостоятельный-ввод-капчи/30