Για να τρέξουμε το παρακάτω πρόγραμμα χρειαζόμαστε δύο από τα παρακάτω packages
Τρέχουμε τις παρακάτω εντολές για την εγκατάσταση των πακέτων:
pip install requests
pip install requests[socks]
Στην συνέχεια δημιουργούμε ένα αρχείο traffic.py και κάνουμε import τα παρακάτω libraries
Ο κώδικας είναι πολύ απλός. Δημιουθργούμε 3 λίστες μια για proxies, μια για user-agents και μια για links.
με το random.choice pick-άρουμε ένα item από το κάθε list
Κάνουμε ένα request στον server και αν έχουμε κάποιο error συνήθως οφείλεται στον proxy οπότε τον αφαιρούμε από την λίστα με τους διαθέσιμους proxy
τέλος για να μην flood-άρουμε τον server κάνουμε ένα time sleep, δηλαδή μπλοκάρουμε το πρόγραμμα για 1 second.
Το αποτέλεσμα φαίνεται στην σελίδα με τα στατιστικά του blogger. Παρόλα αυτά αποτελεί μια naive υλοποίηση καθώς ένα πιο προχωρημένο analytics πρόγραμμα όπως για παράδειγμα το google analytics καταλαβαίνει ότι το traffic μας το δημιουργεί robot. Ένας απλός τρόπος να φιλτράρει αρκετά bots κάποιος είναι να δει αν ο επισκέπτης εκτελεί javascript.
Τρέχουμε τις παρακάτω εντολές για την εγκατάσταση των πακέτων:
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.
Δεν υπάρχουν σχόλια:
Δημοσίευση σχολίου