// Выбираем случайную версию Firefox
string version = Macros.TextProcessing.Spintax("{38|39|40|41|42|43|44|45|46|47|48|49|50|51|52|53}");
//Формируем набор buildID нашего Firefox (у каждой версии свой) [Идея хранения позаимствована у doc'a, за что ему большая благодарность!]
Dictionary <string, string> buildIDSet = new Dictionary <string, string>();
buildIDSet.Add("53", "20170413192749");
buildIDSet.Add("52", "20170316213829");
buildIDSet.Add("51", "20170125094131");
buildIDSet.Add("50", "20161104212021");
buildIDSet.Add("49", "20161019084923");
buildIDSet.Add("48", "20160817112116");
buildIDSet.Add("47", "20160623154057");
buildIDSet.Add("46", "20160502172042");
buildIDSet.Add("45", "20160905130425");
buildIDSet.Add("44", "20160210153822");
buildIDSet.Add("43", "20160105164030");
buildIDSet.Add("42", "20151029151421");
buildIDSet.Add("41", "20151014143721");
buildIDSet.Add("40", "20150812163655");
buildIDSet.Add("39", "20150618135210");
buildIDSet.Add("38", "20150513174244");
instance.ShowNavigatorField(ZennoLab.InterfacesLibrary.Enums.Browser.NavigatorField.BuildId);
// Устанавливаем BuildID
instance.SetHeader(ZennoLab.InterfacesLibrary.Enums.Browser.NavigatorField.BuildId, buildIDSet[version]);
// Формируем набор версий операционной системы Windows
// 6.0 Windows Vista
// 6.1 Windows 7
// 6.2 Windows 8
// 6.3 Windows 8.1
// 10.0 Windows 10
string winOC = Macros.TextProcessing.Spintax("{6.0|6.1|6.2|6.3|10.0}");
string platform = Macros.TextProcessing.Spintax("{Win32|Win64}");
// Определяем "битность" самого приложения
string platformApp = string.Empty;
if(platform=="Win32"){
platformApp = Macros.TextProcessing.Spintax("{; WOW64|}");
} else {
platformApp = "; Win64; x64";
}
// Устанавливаем Useragent
project.Profile.UserAgent = string.Format("Mozilla/5.0 (Windows NT {0}{1}; rv:{2}.0) Gecko/20100101 Firefox/{2}.0", winOC, platformApp, version);
project.Profile.UserAgentAppVersion = "5.0 (Windows)";
project.Profile.UserAgentAppName = "Netscape";
project.Profile.UserAgentAppCodeName = "Mozilla";
project.Profile.UserAgentProduct = "Gecko";
project.Profile.UserAgentProductSub = "20100101";
// OC
project.Profile.UserAgentOsCpu = string.Format("Windows NT {0}{1}", winOC, platformApp);
project.Profile.UserAgentPlatform = platform;
Random r = new Random();
// Формируем набор возможных вариантов Accept-Language
// Здесь присутствует как русский язык, так и иностранный.
// Если необходимо, чтобы выборка была по какому-то определенному признаку - закоментируйте или удалите не нужные строки.
string[] acceptLanguageSet = {
"ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4",
"ru-RU,ru;q=0.9,en;q=0.8",
"ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3"
};
// Устанавливаем Accept-Language
string acceptLanguage = acceptLanguageSet[r.Next(0, acceptLanguageSet.Length)].ToString();
project.Profile.AcceptLanguage = acceptLanguage;
// Устанавливаем настройки языка
project.Profile.UserAgentBrowserLanguage = acceptLanguage.Substring(0, acceptLanguage.IndexOf(','));
project.Profile.UserAgentLanguage = acceptLanguage.Substring(0, acceptLanguage.IndexOf(','));