Про Изолированные браузеры в закладках
Про Изолированные браузеры в закладках
Изолированные браузеры в закладках . В этой статье подробно расписано как работать в режиме Изолированные браузеры в закладках. Есть примеры кода для работы в этом режиме.
Re: Про Изолированные браузеры в закладках
Спасибо, отличная статья для знакомства с работой с вкладками.
А можно расширить ваш пример на случай, если есть 1000+ мейл аккаунтов? Понятно, что столько вкладок разом создавать не стоит. Допустим, что наше железо держит не более 50 вкладок. Нужно поддерживать 50 активных вкладок и после завершения всех действий с мейл аккаунтом вкладку закрывать? Или лучше в существующей вкладке запускать следующий аккаунт?
Набросайте плиз, оптимальную схему для такого случая
А можно расширить ваш пример на случай, если есть 1000+ мейл аккаунтов? Понятно, что столько вкладок разом создавать не стоит. Допустим, что наше железо держит не более 50 вкладок. Нужно поддерживать 50 активных вкладок и после завершения всех действий с мейл аккаунтом вкладку закрывать? Или лучше в существующей вкладке запускать следующий аккаунт?
Набросайте плиз, оптимальную схему для такого случая
Re: Про Изолированные браузеры в закладках
<?php // получение данных из файла с данными в формате логин;пароль $emails_from = file("accs.txt"); // максимальное количество закладок $max_cnt_browser=30; // получить количество почтовых ящиков $emails_count = count($emails_from); // делаем не более максимального числа закладок if($emails_count>$max_cnt_browser) $emails_count = $max_cnt_browser; // открыть такое же количество закладок с браузерами $browser->set_count($emails_count); // обходим все закладки в массиве for($i=0;$i<count($emails_from);$i++) { // при достижении последнего браузера $n = fmod($i, $emails_count); // возвращаемся на первый if(!$n) { $actv_brws=0; } // делаем активным echo "$i делаем активным № $actv_brws<br>"; // делаем активной закладку $browser->set_active_browser($actv_brws); $browser->wait_for(); // чистим и пересоздаём $browser->clear_cache(); $browser->clear_cookies(""); $browser->recreate(); // получим email для закладки $u_arr = explode(";",$emails_from[$i]); $login = trim($u_arr[0]); $pwd =trim($u_arr[1]); // тут переходим на страницу логина и входи в аккаунт // можем тут же делать и следующие шаги по отправке писем // либо вынести их через такой же цикл в следующий шаг // активный браузер $actv_brws++; }
логика листания закладок-браузеров будет такая:
$cnt_all=23; $max_cnt_browser=10; // получить количество почтовых ящиков $emails_count = $cnt_all; // делаем не более 50 закладок if($emails_count>$max_cnt_browser) $emails_count = $max_cnt_browser; // создаём нужное количество браузеров $browser->set_count($emails_count); // начальный активный браузер $actv_brws = 0; // обходим все закладки в массиве for($i=0;$i<$cnt_all;$i++) { // при достижении последнего браузера $n = fmod($i, $emails_count); // возвращаемся на первый if(!$n) { $actv_brws=0; } // делаем активным echo "$i делаем активным № $actv_brws<br>"; $browser->set_active_browser($actv_brws); $browser->wait_for(); // чистим и пересоздаём $browser->clear_cache(); $browser->clear_cookies(""); $browser->recreate(); $browser->navigate("ya.ru"); sleep(1); // активный браузер $actv_brws++; }
Также вместо этого кода
// чистим и пересоздаём $browser->clear_cache(); $browser->clear_cookies(""); $browser->recreate();можно просто менять папку куков и кэша для вновь используемой закладки на новые. Тут уже как кому будет удобно.
Re: Про Изолированные браузеры в закладках
Чтобы без ожиданий - можно задать:Сделайте пожалуйста что бы они реально выполнялись паралельно, а не дожидались загрузки страницы.
browser->set_wait_params(0,0);
Re: Про Изолированные браузеры в закладках
Здравствуйте!
А можно увидеть пример работы с изолированными закладками в нескольких потоках на C#?
А можно увидеть пример работы с изолированными закладками в нескольких потоках на C#?
Re: Про Изолированные браузеры в закладках
обновите версию + вот пример
#region using using System; using System.Diagnostics; using System.Collections.Generic; using System.Linq; using System.IO; using System.Text; using System.Threading; using System.Threading.Tasks; using XHE; using XHE.XHE_DOM; using XHE.XHE_System; using XHE.XHE_Window; using XHE.XHE_Web; #endregion class MyScript:XHEScript { static void Main(string[] args) { // init XHE server = "127.0.0.1:7011"; InitXHE(); browser.set_count(10); // go to google for (int i=0;i<10;i++) { browser.Script.server_tab=i; browser.navigate("ya.ru"); } // exit app.quit(); } }для XHEScripMulti - вместо browser.Script.server_tab=i; - просто server_tab=i;
Re: Про Изолированные браузеры в закладках
Так это просто последовательный запуск навигейтов в разных вкладках. Я имел ввиду запуск в параллельных потоках разных вкладок. Я использую XHE.dll и пишу прогу в Visual Studio. Программу переписал из PHP скрипта, в надежде как раз на многопоточность и работу в одном Хумане, но с разными вкладками. Собственно, меня и запуск нескольких экземпляров ХуманРТ устраивает, но хотелось сэкономить память(каждый ХуманРТ>50Mb оперативы ест). Как оказалось, всё не так просто как я думал В моей проге описан класс который выполняет нужные мне действия. Eсли просто запускаем выполнение, то всё работает как надо. Попытался запустить в несколько потоков и начались проблемы. Примерно так у меня выглядит запуск потоков:
Когда я решил, что еще не дорос до потоков С#, я решил попробовать пример описанный Вами(ссылка на статью в начале этой темы). Т.е., запускаем несколько экземпляров скрипта ПХП и в каждом прописываем XHEBaseObject::server_tab=номер_вкладки. Ваш пример работает - яндекс открывается в каждой вкладке(или, если запустить отдельный скрипт с указанием номера вкладки, то именно в указанной), НО, стоит в него добавить несколько строк настройки браузера:
как начинается то же самое, что и с моей прогой на C# - навигейт происходит только во вкладке которая в данный момент в фокусе. Дальше веселее. Как я выяснил, всё что связано с $browser происходит только во вкладке в фокусе, а вот обращение к объектам DOM идет из каждого потока в правильную вкладку!!! Но, т.к. у нас везде пусто(кроме фокуса), то и остальные действия работают только в ней. Хотя "работают" - это громко сказано, т.к. остальные потоки со своим $browser лезут в ту же вкладку.
П.С. Версию обновил - ничего не изменилось.
П.П.С. Попробовал в С# в каждом потоке выполнить только browser.navigate("ya.ru") без предварительных манипуляций с настройками браузера и, как я и ожидал, во всех вкладках открылась страница яндекса.
Thread myThread; XHEScript.browser.set_count(5); for (number = 0; number < 5; number++) { myThread = new Thread(new ParameterizedThreadStart(StartFunc)); myThread.Start(number); // запускаем поток Thread.Sleep(1000); } public static void StartFunc(object x) { int nomer = (int)x; { myClassObject= new MyClass(nomer); }В инициализацию экземпляра класса я добавил строку из примера:
XHEBaseObject.server_tab = nomer;где nomer - номер потока. В итоге все потоки начинают работать в одной вкладке, при чем в той которая в момент запуска программы была в фокусе.
Когда я решил, что еще не дорос до потоков С#, я решил попробовать пример описанный Вами(ссылка на статью в начале этой темы). Т.е., запускаем несколько экземпляров скрипта ПХП и в каждом прописываем XHEBaseObject::server_tab=номер_вкладки. Ваш пример работает - яндекс открывается в каждой вкладке(или, если запустить отдельный скрипт с указанием номера вкладки, то именно в указанной), НО, стоит в него добавить несколько строк настройки браузера:
$browser->clear_cache(); $browser->clear_cookies("", true, true); $browser->enable_java_script(true, false); $browser->enable_java(true, false); $browser->enable_popup(true, true); $browser->enable_frames(true, false); $browser->disable_proxy("all connections");,
как начинается то же самое, что и с моей прогой на C# - навигейт происходит только во вкладке которая в данный момент в фокусе. Дальше веселее. Как я выяснил, всё что связано с $browser происходит только во вкладке в фокусе, а вот обращение к объектам DOM идет из каждого потока в правильную вкладку!!! Но, т.к. у нас везде пусто(кроме фокуса), то и остальные действия работают только в ней. Хотя "работают" - это громко сказано, т.к. остальные потоки со своим $browser лезут в ту же вкладку.
П.С. Версию обновил - ничего не изменилось.
П.П.С. Попробовал в С# в каждом потоке выполнить только browser.navigate("ya.ru") без предварительных манипуляций с настройками браузера и, как я и ожидал, во всех вкладках открылась страница яндекса.
Re: Про Изолированные браузеры в закладках
используйте XHEScriptMulti вместо XHEScript для работы в несколько Thread
PS: Посмотрите еще вот это пример - viewtopic.php?f=49&t=1294
PS: Посмотрите еще вот это пример - viewtopic.php?f=49&t=1294
Re: Про Изолированные браузеры в закладках
а есть ли возможность менять папку для куков и кеша из скрипта?
было бы неплохо реализовать функционал для сохранения и быстрой смены так называемого профиля браузера(
прокси
юзер агент
разрешение экрана
язык браузера
accept language
accept
accept encoding
time zone
navigator.platform
navigator.cpuClass
referer
appName
appCodeName
appMinorVersion
product
productSub
maxTouchPoints
onTouchStart
Canvas finger print
WebGL finger print
hardwareConcurrency
deviceMemory
pluginsInfo
и т.д.)
было бы неплохо реализовать функционал для сохранения и быстрой смены так называемого профиля браузера(
прокси
юзер агент
разрешение экрана
язык браузера
accept language
accept
accept encoding
time zone
navigator.platform
navigator.cpuClass
referer
appName
appCodeName
appMinorVersion
product
productSub
maxTouchPoints
onTouchStart
Canvas finger print
WebGL finger print
hardwareConcurrency
deviceMemory
pluginsInfo
и т.д.)
Re: Про Изолированные браузеры в закладках
// задать папку куков $browser->set_cookies_folder($folder,$refresh=true); // задать папку кэша $browser->set_cache_folder($folder,$refresh=true);
это тоже уже есть, вот пример из тестов:wal писал(а): ↑16 авг 2019, 00:40было бы неплохо реализовать функционал для сохранения и быстрой смены так называемого профиля браузера(
прокси
юзер агент
разрешение экрана
язык браузера
accept language
accept
accept encoding
time zone
navigator.platform
navigator.cpuClass
referer
appName
appCodeName
appMinorVersion
product
productSub
maxTouchPoints
onTouchStart
Canvas finger print
WebGL finger print
hardwareConcurrency
deviceMemory
pluginsInfo
и т.д.)
// 1 шаг echo "1. Зададим параметры браузера : "; echo $browser->set_user_agent("5Googlebot/2.1 (+http://www.google.com/bot.html)")." "; echo $browser->set_screen_resolution(1024,768,16)." "; echo $browser->set_language("en")."\n"; // 2 шаг echo "2. Посмотрим парметры : "; echo $browser->navigate("whoer.net/extended")."\n"; // 3 шаг echo "2. Сохраним профиль : "; echo $browser->save_profile("active_page_profile.json")."\n"; // 4 шаг echo "4. Добавим закладку : "; echo $browser->add_tab()."\n"; // 5 шаг echo "5. Установим на ней тотже профиль : "; echo $browser->load_profile("active_page_profile.json")."\n"; // 6 шаг echo "6. Посмотрим парметры : "; echo $browser->navigate("whoer.net/extended")."\n";
Re: Про Изолированные браузеры в закладках
Отлично!
Большое спасибо!
когда обновите хелп? =) там ни слова про эти команды...
Большое спасибо!
когда обновите хелп? =) там ни слова про эти команды...
-
- Сообщения: 1
- Зарегистрирован: 17 ноя 2019, 23:45
Re: Про Изолированные браузеры в закладках
Приветствую!
Так никакой подробной информации и нет, как работать с изолированными закладками!
По XHEScriptMulti также информации "0".
Прошу администрацию humanemulator добавить простой приме параллельной работы с несколькими вкладками!
Например одновременной загрузки ya.ru , google.com, yahoo.com, с различными прокси, реализованные в одном классе!
Так никакой подробной информации и нет, как работать с изолированными закладками!
По XHEScriptMulti также информации "0".
Прошу администрацию humanemulator добавить простой приме параллельной работы с несколькими вкладками!
Например одновременной загрузки ya.ru , google.com, yahoo.com, с различными прокси, реализованные в одном классе!
Re: Про Изолированные браузеры в закладках
Постарались подробно расписать работу с server_tab в том числе и в C# viewtopic.php?f=60&t=2471. Если что то не понятно или надо добавить пишите в теме о статье, добавим.1000and1code писал(а): ↑17 ноя 2019, 23:51Приветствую!
Так никакой подробной информации и нет, как работать с изолированными закладками!
По XHEScriptMulti также информации "0".
Прошу администрацию humanemulator добавить простой приме параллельной работы с несколькими вкладками!
Например одновременной загрузки ya.ru , google.com, yahoo.com, с различными прокси, реализованные в одном классе!
-
- Сообщения: 42
- Зарегистрирован: 19 июн 2019, 19:59
Re: Про Изолированные браузеры в закладках
А разве $browser->set_screen_resolution(1024,768,16); корректно меняет разрешение?
https://ibb.co/fkpRdT5
Значения часто далеки от правды, в отличие от реальных разбросов разрешения в viewport: на https://browserleaks.com/javascript
Я лично просто двигал left pane, bottom pane, чтобы физически поменять размер окна под необходимое разрешение :3
https://ibb.co/fkpRdT5
Значения часто далеки от правды, в отличие от реальных разбросов разрешения в viewport: на https://browserleaks.com/javascript
Я лично просто двигал left pane, bottom pane, чтобы физически поменять размер окна под необходимое разрешение :3