- Регистрация
- 27.12.2016
- Сообщения
- 289
- Благодарностей
- 404
- Баллы
- 63
Доброго дня!
Я сам по себе человек достаточно рассеянный, так помимо этого, по квартире постоянно носятся два малолетних берсерка, постоянно отвлекая на свои подвиги. И приводит это к постоянным закидонам при написании шаблонов. Пишешь регер — анонимный-анонимный, с эмуляцией всего чего можно — ввода с клавы, кликов мышкой, и всего такого. Наклепаешь профилей (отдельное спасибо @LaGir за статью по теме), начинаешь регать — ошибки регистрации. Лезешь в анонимность — все эти whoer-ы, fakevision ковыряешь, мозг набекрень, а результата 0, а потом оказывается, что ты или браузер при регистрации не переключил в настройках проекта, или наоборот, в профиле не тот браузер для генерации выбрал...
В итоге, заходит твой бот на какой-нибудь условный майлру, с нагуляными куками, эмуляциями и всем прочим, и пытается регаться из под 32-лисички с юзерагентом хрома. И естественно, такого умника отправляют гадать каптчи-перекаптчи, принимать звонки и вообще, унижают по всякому.
Пришла идея как-то автоматизировать соответствие UA и браузера. Но методов на шарпе много, а опыта мало, потому спросил на форуме о возможности.
Благодаря ответу @Zymlex вот тут, получился сниппет автопереключения браузера проекта в зависимости от UserAgent профиля. Тестил на ZP и PM 5.40. Zymlex предупреждал, что по хрому может закосячить, но нет, вроде переключает без ошибок:
Остался не отвеченным вопрос о получении в код настроек браузера профиля (см. скрин), чтобы можно было контролировать генерацию профиля:
Видел в профиле свойство project.Profile.BrowserProfile, но как его юзать что-то не догнал, да к тому же свойство это readonly...
Я сам по себе человек достаточно рассеянный, так помимо этого, по квартире постоянно носятся два малолетних берсерка, постоянно отвлекая на свои подвиги. И приводит это к постоянным закидонам при написании шаблонов. Пишешь регер — анонимный-анонимный, с эмуляцией всего чего можно — ввода с клавы, кликов мышкой, и всего такого. Наклепаешь профилей (отдельное спасибо @LaGir за статью по теме), начинаешь регать — ошибки регистрации. Лезешь в анонимность — все эти whoer-ы, fakevision ковыряешь, мозг набекрень, а результата 0, а потом оказывается, что ты или браузер при регистрации не переключил в настройках проекта, или наоборот, в профиле не тот браузер для генерации выбрал...
В итоге, заходит твой бот на какой-нибудь условный майлру, с нагуляными куками, эмуляциями и всем прочим, и пытается регаться из под 32-лисички с юзерагентом хрома. И естественно, такого умника отправляют гадать каптчи-перекаптчи, принимать звонки и вообще, унижают по всякому.
Пришла идея как-то автоматизировать соответствие UA и браузера. Но методов на шарпе много, а опыта мало, потому спросил на форуме о возможности.
Благодаря ответу @Zymlex вот тут, получился сниппет автопереключения браузера проекта в зависимости от UserAgent профиля. Тестил на ZP и PM 5.40. Zymlex предупреждал, что по хрому может закосячить, но нет, вроде переключает без ошибок:
C#:
//получаем useragent профиля
string ua = project.Profile.UserAgent;
//получаем текущий браузер проекта
var currBrowser = Convert.ToString(instance.BrowserType);
project.SendInfoToLog("Profile UserAgent: "+ua+" Current project browser: "+currBrowser, true);
//Если в ua присутствует Chrome и текущий браузер не Chrome
if (ua.Contains("Chrome") && (currBrowser != "Chrome"))
{
//устанавливаем браузером проекта Chrome
instance.Launch(ZennoLab.InterfacesLibrary.Enums.Browser.BrowserType.Chrome, true);
project.SendInfoToLog("Движок Chrome установлен как браузер проекта", true);
}
//Если в ua присутствует Firefox любой версии 4*, и движок не Firefox45,
if (ua.Contains("Firefox/4") && (currBrowser != "Firefox45"))
{
//устанавливаем браузером проекта Firefox45
instance.Launch(ZennoLab.InterfacesLibrary.Enums.Browser.BrowserType.Firefox45, true);
project.SendInfoToLog("Движок Firefox45 установлен как браузер проекта", true);
}
//Если в ua присутствует Firefox любой версии 5*, 6*, 7*,
if (ua.Contains("Firefox/5") || ua.Contains("Firefox/6") || ua.Contains("Firefox/7"))
{
//и движок не Firefox52х64
if (ua.Contains("Win64") && currBrowser != "Firefox52x64")
{
//устанавливаем браузером проекта Firefox52x64
instance.Launch(ZennoLab.InterfacesLibrary.Enums.Browser.BrowserType.Firefox52x64, true);
project.SendInfoToLog("Движок Firefox52x64 установлен как браузер проекта", true);
}
//и движок не Firefox52
if (ua.Contains("WOW64") && currBrowser != "Firefox52")
{
//устанавливаем браузером проекта Firefox52
instance.Launch(ZennoLab.InterfacesLibrary.Enums.Browser.BrowserType.Firefox52, true);
project.SendInfoToLog("Движок Firefox52 установлен как браузер проекта", true);
}
// UA FF/5*-/6*-/7*, и не содержит Win64, и не содержит WOW64, и движок не Firefox52
if (ua.Contains("WOW64")==false && ua.Contains("Win64")==false && currBrowser != "Firefox52")
{
//устанавливаем браузером проекта Firefox52
instance.Launch(ZennoLab.InterfacesLibrary.Enums.Browser.BrowserType.Firefox52, true);
project.SendInfoToLog("Движок Firefox52 установлен как браузер проекта", true);
}
}
Видел в профиле свойство project.Profile.BrowserProfile, но как его юзать что-то не догнал, да к тому же свойство это readonly...
Последнее редактирование: