Як накрутити відвідуваність сайту (частина 4) 2


SeleniumПродовжуємо розмову про те, як створити клікер для накрутки лічильників сайту і зараз, як і обіцяв у попередній частині, я розповім про керування cookies та user agent браузера через Selenium. Для цього нам трохи доведеться змінити клікер, але спочатку давайте зайдемо на оцей веб-сайт: http://www.whatsmyuseragent.com/

Сайт дозволяє переглянути вашу поточну User Agent String – тобто як ваш браузер ідентифікує себе для сайтів. Саме за цим значенням більшість сайтів дізнається який у вас браузер, у моєму випадку маємо Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.114 Safari/537.36 з чого видно що у мене Хром 35 версії, сьома вінда (NT 6.1).

Але нас цікавить цей ресурс не тільки для того, аби дізнатися який у нас браузер, а ще й тому, що нижче є перелік юзерагентів попередніх відвідувачів сайту. Він нам і потрібен 🙂 Виберемо звідти кілька рядків, найменш схожих як на наш, так і між собою. Наприклад:

  • Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0
  • Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Win64; x64; Trident/4.0)
  • Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7) AppleWebKit/534.48.3 (KHTML, like Gecko) Version/5.1 Safari/534.48.3

Тепер спробуємо замінити наш user agent на один із цих. Давайте на третій – він взагалі для Mac OS X, а я завжди хотів мати Мак 😀

Клікер доведеться модифікувати у тому місці, де здійснюється ініціалізація веб-драйвера, оскільки ми хочемо при створенні вікна браузера відразу задати йому потрібне значення user agent string, для чого доведеться створити об’єкт FirefoxProfile і задати йому відповідне значення властивості general.useragent.override.

Змінюємо наш метод Main наступним чином:

public class Main {
    public static void main(String... args) {
        //Init
        FirefoxProfile profile = new FirefoxProfile();
        profile.setPreference("general.useragent.override", "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7) AppleWebKit/534.48.3 (KHTML, like Gecko) Version/5.1 Safari/534.48.3");
        WebDriver driver = new FirefoxDriver(profile);
        driver.get("http://www.whatsmyuseragent.com/");    
    }
}

І що ми отримали? А ось що:

Підміна User Agent

Підміна User Agent

Можна повторити експеримент і для інших юзер агентів, або просто зробити вибір випадкового юзер агента зі списку чи файлу. Я покажу на прикладі списку: ми створимо список, що містить 3 різних user agent рядки і метод, який повертає випадковий елемент списку (для методу кількість елементів у списку не важлива, тож можете додати їх хоч сотню).

public class Main {
    private static Random randomGenerator = new Random();

    public static void main(String... args) {
        //User Agents List
        List<String> userAgentsList = new ArrayList<String>();
        //Add user agent strings here:
        userAgentsList.add("Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.1; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0");
        userAgentsList.add("Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Win64; x64; Trident/4.0)");
        userAgentsList.add("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7) AppleWebKit/534.48.3 (KHTML, like Gecko) Version/5.1 Safari/534.48.3");
        //Init
        FirefoxProfile profile = new FirefoxProfile();
        profile.setPreference("general.useragent.override", randomString(userAgentsList));
        WebDriver driver = new FirefoxDriver(profile);
        driver.get("http://www.whatsmyuseragent.com/");
    }

    /**
     * Returns random element from list
     *
     * @param list of elements
     * @return random element
     */
    private static String randomString(List<String> list) {
        int index = randomGenerator.nextInt(list.size());
        return list.get(index);
    }
}

Ось так. До питання cookies ми повернемося у наступній частині статті.

Почитайте ще оце:


Залиште коментар

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

2 thoughts on “Як накрутити відвідуваність сайту (частина 4)