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


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

Akceptor.org - структура сайту

Akceptor.org – структура сайту

Для прикладу знову ж таки використаємо мій сайт http://akceptor.org по якому і спробуємо походити. Оскільки з часом структура сайту може змінюватися, то я зробив знімок екрану і вставив його у статтю аби було зрозуміло що і до чого.

Отже ми маємо кілька основних елементів, з якими можна взаємодіяти: меню сайту, заголовки статей, віджет з популярними публікаціями, поле пошуку на сайті, посилання на головну сторінку. Уявимо собі, наступний сценарій: відвідувач заходить на сайт, читає першу частину статті про те як збільшити відвідуваність сайту; повертається на головну сторінку; читає другу частину; шукає чи є у мене ще статті про selenium і зрештою переходить на одну з статей, які перелічено у віджеті “Зверніть увагу”.

Отже, що нам потрібно? Для початку треба кілька раз клікнути на відповідні посилання, потім ввести текст у поле пошуку і натиснути клавішу “Enter”, а потім знову клікнути на заголовок однієї зі статей. Наче все просто, але як клікер має знати куди саме йому натискати?

Selenium дозволяє знайти потрібний вам елемент на сторінці (WebElement) кількома способами. Хто трохи орієнтується у HTML\CSS, той знає, що елементам веб-сторінок зазвичай двють унікальні імена (name), айдішки (id), або ж їх можна знайти знаючи положення у DOM-дереві (наприклад “третє посилання від початку документу”). Побачити ці всі речі можна якщо натиснути правю клавішею миші на потрібний елемент і вибрати “Inspect” у меню, що з’явиться. У мене Google Chrome і там це виглядає отак:

Inspect element

Inspect element

Як бачимо, наше посилання на статтю не має ніяких атрибітів типу name чи id, тому для того, аби знайти елемент на сторінці доцільно шукати за текстом самого посилання, або за його частиною (у нашому випадку то текст у дужках і самі дужки) – (частина 1). Це виглядає отак: driver.findElement(By.partialLinkText(“(частина 1)”)).click(); Тобто ми кажемо нашому драйверу браузера знайти на сторінці певний елемент, параметром (у дужках) кажемо як саме шукати цей елемент: за частиною тексту посилання, partial link text, а далі кажемо що ж треба зробити з цим елементом: клікнути на ньому. Аналогічно робимо клік на посилання у загловку за фразою “Думки вголос” (зважайте на регістр літер) а потім на “(частина 2)”.

Залишилося ввести пошуковий запит. Дивимося на поле пошуку і бачимо отаке: <input type=”search” class=”search-field” placeholder=”Search – Type &amp; Hit Enter …” value=”” name=”s” title=”Search for:”> , тобто тут ми маємо атрибут name, за яким можна знайти поле вводу пошукового запиту. У це поле спочатку вводимо текст запиту, а потім тиснемо “Ентер”, використовуючи константу Keys.RETURN.

Ну і нарешті перехід на одну зі статей у віджеті “Зверніть увагу”. Специфіка цього завдання у тому, що у віджеті показується 3 посилання, а всього їх більше, тобто ми не можемо точно сказати яка конкретно стаття у нас буде показуватися, тому ми пошукаємо якийсь спільний ідентифікатор (наприклад всі ілюстрації до цих статей мають однаковий class=”featured-thumb“). Отже будемо клікати за іменем класу: By.className(“featured-thumb“) – цей рядок знайде нам перший елемент з потрібним клас-неймом. Далі, як завжди, клікаємо. Ну і наостанок треба не забути закрити вікно браузера викликавши driver.close();

public class Main {
    public static void main(String... args) {
        //Init
        WebDriver driver = new FirefoxDriver();
        //Open site
        driver.get("http://akceptor.org");
        //Browse
        driver.findElement(By.partialLinkText("(частина 1)")).click();
        driver.findElement(By.partialLinkText("Думки вголос")).click();
        driver.findElement(By.partialLinkText("(частина 2)")).click();
        driver.findElement(By.partialLinkText("Думки вголос")).click();
        //Search
        driver.findElement(By.name("s")).sendKeys("selenium");
        driver.findElement(By.name("s")).sendKeys(Keys.RETURN);
        //Featured posts
        driver.findElement(By.className("featured-thumb")).click();
        //Close browser
        driver.close();
    }
}

На сьогодні це все. У наступній частині поговоримо про те, як зробити так, аби наш клікер імітував не одного відвідувача, а кількох: спробуємо змінювати для браузера cookies та user agent string.

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


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

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

Думка на тему “Як накрутити відвідуваність сайту (частина 3)