Δευτέρα 17 Δεκεμβρίου 2018

Generating fake traffic

Για να τρέξουμε το παρακάτω πρόγραμμα χρειαζόμαστε δύο από τα παρακάτω packages
  1. requests
  2. requests[socks]
Τρέχουμε τις παρακάτω εντολές  για την εγκατάσταση των πακέτων:

pip install requests
pip install requests[socks]

Στην συνέχεια δημιουργούμε ένα αρχείο traffic.py και κάνουμε import τα παρακάτω libraries



import requests
from requests import exceptions

import random
import time

Ο κώδικας είναι πολύ απλός. Δημιουθργούμε 3 λίστες μια για proxies, μια για user-agents και μια για links.

INTERVAL = 1

PROXIES = [
    "socks5://207.154.233.200:1080",
    "socks5://139.5.27.11:9999",
    "socks5://124.65.128.150:2360",
    "socks5://107.170.42.147:28429",
    "socks5://220.79.34.109:2018",
]

USER_AGENTS = [
    "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36",
    "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.157 Safari/537.36",
    "Mozilla/5.0 (Windows NT 5.1; rv:7.0.1) Gecko/20100101 Firefox/7.0.1",
    "Mozilla/5.0 (Linux; Android 7.0; SM-G892A Build/NRD90M; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/60.0.3112.107 Mobile Safari/537.36"
]

LINKS = [
    "https://excelsi-or.blogspot.com/2016/12/blog-post_99.html",
    "https://excelsi-or.blogspot.com/2016/07/api-documentation.html",
    "https://excelsi-or.blogspot.com/2016/06/python-3.html"
]

με το random.choice pick-άρουμε ένα item από το κάθε list

while True:
    link_to_visit = random.choice(LINKS)
    user_agent_to_use = random.choice(USER_AGENTS)
    proxy_to_use = random.choice(PROXIES)

Κάνουμε ένα request στον server και αν έχουμε κάποιο error συνήθως οφείλεται στον proxy οπότε τον αφαιρούμε από την λίστα με τους διαθέσιμους proxy


    try:
        response = requests.get(link_to_visit,
                            headers={'User-Agent': user_agent_to_use},
                            proxies={'https': proxy_to_use})
    except (ConnectionResetError, exceptions.ConnectionError):
        PROXIES.remove(proxy_to_use)
        print("Proxy removed")
    else:
        print("Request done")
        print(response)
    time.sleep(INTERVAL)

τέλος για να μην flood-άρουμε τον server κάνουμε ένα time sleep, δηλαδή μπλοκάρουμε το πρόγραμμα για 1 second.

Το αποτέλεσμα φαίνεται στην σελίδα με τα στατιστικά του blogger. Παρόλα αυτά αποτελεί μια naive υλοποίηση καθώς ένα πιο προχωρημένο analytics πρόγραμμα όπως για παράδειγμα το google analytics καταλαβαίνει ότι το traffic μας το δημιουργεί robot. Ένας απλός τρόπος να φιλτράρει αρκετά bots κάποιος είναι να δει αν ο επισκέπτης εκτελεί javascript.

Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου