From 52353def15f0c807f4db12010923e0b9fda75540 Mon Sep 17 00:00:00 2001 From: Lasse Date: Wed, 30 Jun 2021 00:22:53 +0200 Subject: [PATCH] v1.0 --- Dockerfile | 6 +- docker/free/Dockerfile | 19 ++ docker/mrkoll/Dockerfile | 14 + facebook/__main__.py | 260 +++++++++-------- facebook/arangodb.py | 306 +++++++++++++------- facebook/classes.py | 98 ++++--- facebook/config.py | 10 +- facebook/face_enc | Bin 0 -> 446517 bytes facebook/faces.py | 110 ++++++++ facebook/gephi (kopia).py | 185 ++++++++++++ facebook/gephi.py | 209 +++++++++++--- facebook/helpers.py | 63 ++++- facebook/images.py | 70 +++++ facebook/images_pi.py | 168 +++++++++++ facebook/modemtest.py | 45 +++ facebook/scrapers.py | 110 ++++---- facebook/socks5free.csv | 557 +++++++++++++++++++++++++++++++++++++ facebook/start_database.py | 23 ++ facebook/testclass.py | 131 +++++++++ integrity.py | 15 + requirements.txt | 2 +- workspace.code-workspace | 4 + 22 files changed, 2066 insertions(+), 339 deletions(-) create mode 100644 docker/free/Dockerfile create mode 100644 docker/mrkoll/Dockerfile create mode 100644 facebook/face_enc create mode 100644 facebook/faces.py create mode 100644 facebook/gephi (kopia).py create mode 100644 facebook/images.py create mode 100644 facebook/images_pi.py create mode 100644 facebook/modemtest.py create mode 100644 facebook/socks5free.csv create mode 100644 facebook/start_database.py create mode 100644 facebook/testclass.py create mode 100644 integrity.py diff --git a/Dockerfile b/Dockerfile index cd1ac49..8bc5183 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,11 +3,13 @@ FROM python:3.8 WORKDIR / +COPY data/ . + COPY requirements.txt . RUN pip install -r requirements.txt -ADD . . +COPY facebook/accs.py facebook/classes.py facebook/config.py facebook/helpers.py facebook/__main__.py facebook/arangodb.py facebook/scrapers.py /facebook/ ENTRYPOINT [ "python", "facebook/__main__.py" ] @@ -15,5 +17,5 @@ CMD ["",""] # BUILD: # docker buildx create --use -#docker buildx build --platform linux/arm -t l3224/fb-scraper:pi --push . +#docker buildx build --platform linux/arm,linux/arm64 -t l3224/fb-scraper:pi --push . diff --git a/docker/free/Dockerfile b/docker/free/Dockerfile new file mode 100644 index 0000000..c289f9d --- /dev/null +++ b/docker/free/Dockerfile @@ -0,0 +1,19 @@ + +FROM python:3.8 + +WORKDIR / + +COPY requirements.txt . + +RUN pip install -r requirements.txt + +ADD . . + +ENTRYPOINT [ "python", "facebook/__main__.py", "-p free" ] + +CMD ["",""] + +# BUILD: +# docker buildx create --use +#docker buildx build --file docker/free/Dockerfile --platform linux/arm -t l3224/fb-scraper:free --push . + diff --git a/docker/mrkoll/Dockerfile b/docker/mrkoll/Dockerfile new file mode 100644 index 0000000..d61b23a --- /dev/null +++ b/docker/mrkoll/Dockerfile @@ -0,0 +1,14 @@ + +FROM python:3.8 + +WORKDIR / + +COPY requirements.txt . + +RUN pip install -r requirements.txt + +ADD . . + +ENTRYPOINT [ "python", "facebook/mrkoll.py" ] + +# docker buildx build --file docker/mrkoll/Dockerfile --platform linux/arm -t l3224/fb-scraper:mrkoll --push . \ No newline at end of file diff --git a/facebook/__main__.py b/facebook/__main__.py index 99c20a5..68a173b 100644 --- a/facebook/__main__.py +++ b/facebook/__main__.py @@ -1,142 +1,158 @@ import random import traceback -from getopt import GetoptError, getopt +from getopt import getopt from sys import argv from time import sleep -from subprocess import check_output -from re import split -from socket import gethostname - -from arangodb import * -from classes import Profile, User -from helpers import sleep_, write_error, _print -from scrapers import profile_picture_reactions - - -def blocked_profile(profile): - """ Tar bort profilen som blivit blockad och returnerar en ny. """ - report_blocked(profile) - remove_profile(profile) - return new_profile() - - -def new_profile(): - """ Hämtar en ny profil. """ - profile = Profile(get_profile(), container) - if profile.logged_in == False: - profile.accept_cookies() - sleep_(2) - profile.login() - return profile - +from datetime import datetime +from config import set_pwd +from random import randint if __name__ == "__main__": print() - # Hämta namn för containern där skriptet körs - if gethostname() not in ['macbook.local']: # TODO Lägg till för studiodatorn - try: - containers = check_output(['docker', 'lookingup', 'ls']).decode() - container = split('\W\W+', containers.split('\n')[1])[-1] - except FileNotFoundError: - pass - else: - container = 'macbook' + proxieservers = 'mullvad' # Argument och alternativ + + # Variabler som kan ändras + url_other_pictures = [] # Fylls eventuellt på + test = False + write = True + mode = 'all' + pwd = None + argv = argv[1:] - try: - opts, args = getopt(argv, "bm:u:o:", ['backup=',"mode=", "user=", "other="]) - for o, a in opts: - # mode_nr används för hur ofta profile ska roteras - if o in ["-m", "--mode"]: - mode = a.strip() - if mode == 'single': - mode_nr = 1.7 - elif mode == 'few': - mode_nr = 1.4 - elif mode == 'force': - mode_nr = 1 - else: - mode = 'all' + + opts, args = getopt(argv, "bim:u:o:p:wl:", ["backup", "images", "mode=", "user=", "other=", "profiles=", "write", "password="]) + + for o, a in opts: + print(o) + if o in ['-l', "--password"]: + pwd = a.strip() + + set_pwd(pwd) + + # Importera andra moduler + from config import url_bas + from arangodb import ( + blocked_profile, + new_profile, + backup, + get_user, + check_for_user, + friends_of_user, + ) + from classes import Profile, User + from helpers import sleep_, write_error, _print, check_profile_status, update_cookie + from scrapers import profile_picture_reactions + + for o, a in opts: + + # Bestäm vilka profiler/proxies som ska användas + if o in ['-p', '--profiles']: + proxieservers = a.strip() + print(f'Proxieservers: {proxieservers}') + + # Bestäm mode + if o in ["-m", "--mode"]: + mode = a.strip() + if mode == "single": + mode_nr = 1.7 + elif mode == "few": + mode_nr = 1.4 + elif mode == "force": mode_nr = 1 + + # Bestäm user + if o in ["-u", "--user"]: + if a == 'test': # För att testa profiler i profiles_test + test = True + container = str(a.strip()) + if all([a.strip()[:4] == "leak", len(a) < 7]) or a == 'test': + sleep(randint(0, 40)/10) # För att docker service inte ska gå vidare exakt samtidigt + lookups = "leak_lookups" + userdoc = get_user(collection=lookups) + elif a.strip()[:7] == "lookups": + lookups = "lookups" + userdoc = get_user(collection=lookups) + if 'other' in userdoc: + url_other_pictures = userdoc['other'] + else: + url_other_pictures = [] + elif a == 'test': + lookups = "leak_lookups" + userdoc = get_user(collection=lookups) + else: + lookups = "lookups" + userdoc = {'_key': a} + + if o in ["-o", "--other"]: + url_other_pictures = a.split(",") + if o in ["-b", "--backup"]: + backup(db) + if o in ['-w', "--write"]: + write = False - for o, a in opts: - if o in ["-u", "--user"]: - try: - if a.strip()== 'leak': - lookups = 'leak_lookups' - user = get_user(collection='leak_lookups')['_key'] - else: - lookups = 'lookups' - user = a - user = User(str(user).strip(), mode) - except StopIteration: - raise Exception - if o in ["-o", "--other"]: - url_other_pictures = a.split(',') - if o in ['-b', '--backup']: - while True: - backup(db) - sleep(21600) + + if 'userdoc' not in globals(): + lookups = "lookups" + userdoc = {'_key': str(input("Vem/vilka vill du kolla bilder för? ")).strip()} - if "user" not in globals(): - lookups = 'lookups' - user = User(str(input("Vem/vilka vill du kolla bilder för? ")).strip(), mode) - except GetoptError: - lookups = 'lookups' - user = User(str(input("Vem/vilka vill du kolla bilder för? ")).strip(), mode) - - mode = input("Söka efter alla, första/sida eller första? (all, few, single)? ").lower().strip() - if mode == '': - mode = 'all' - + print('Mode:', mode) + print('Write:', write) + + # Hämta en användare att kolla upp + user = User(str(userdoc['_key']).strip(), mode, other_pictures=url_other_pictures) + if "url_other_pictures" in globals(): l = [] for url in url_other_pictures: - l.append(url[url.find('facebook.com') + 12:]) + l.append(url[url.find("facebook.com") + 12 :]) user.url_other_pictures = l # Hämta profil - profile = new_profile() + profile = new_profile(container, proxieservers) + profile.write = write + + update_cookie(profile.browser.session.cookies, profile) sleep(3) # Gå igenom de användare som efterfrågats - #try: + while True: - if lookups == 'leak_lookups': - profile.browser.open(url_bas + "/" + user.username) - url = profile.browser.state.url.strip('/').strip('?_rdr') - user = User(str(url[url.rfind('/') + 1:]).strip(), mode) + if lookups == "leak_lookups": + id = user.username + check_profile_status(profile, user) + if profile.blocked: + profile = blocked_profile(profile, proxieservers=proxieservers) + profile.open(url_bas + "/" + user.username) + url = profile.browser.state.url.strip("/").strip("?_rdr") + if "php?" not in url: + user = User(str(url[url.rfind("/") + 1 :]).strip(), mode) + user.id = id sleep_(4) - - print(f"Kollar profilbilder för {user.username}") - - if 'container' not in globals: container = str(user.username) profile.container = container - _print(profile, user, f"Börjar med profilen {profile.name}") - + if "container" not in globals(): + container = str(user.username) + profile.container = container profile.users_checked += 1 - # Set för kollade bilder och kollade medlemmar - #all_pictures = set([doc["_key"] for doc in db.collection("pictures").all()]) - #all_pictures_start = all_pictures.copy() - #members_checked = checked_members() - - # Hämta reaktioner för den första användaren - if any([not check_for_user(user.username), mode == 'force']): + # Hämta reaktioner för den första användaren + if any([not check_for_user(user.username, mode=mode), mode == "force"]): try: while True: # Uppdatera in_use - profile.update_time() - profile = profile_picture_reactions(profile, user, first_user=True, mode=mode) + profile.update_time() + profile = profile_picture_reactions( + profile, user, first_user=True, mode=mode + ) if profile.blocked: - profile = blocked_profile(profile) + profile = blocked_profile(profile, proxieservers=proxieservers) else: break except: @@ -148,17 +164,20 @@ if __name__ == "__main__": _print(profile, user, "\nVänner att kolla:") friends_unchecked = [] - for friend in friends: + for friend in friends: if not check_for_user(friend): print(friend) friends_unchecked.append(friend) _print(profile, user, [friends_unchecked], silent=True) + _print(profile, user, f'Totalt: {len(friends_unchecked)}') print() # Hämta reaktioner för users vänner (som reagerat) count_friends = 0 for friend in friends_unchecked: + if datetime.now().strftime("%H") == '03' and int(datetime.now().strftime("%M")) < 30: # Sov för att kunna säkerhetskopieraa + sleep(1800) count_friends += 1 user = User(str(friend), mode, other_pictures=[]) sleep_(2) @@ -166,11 +185,10 @@ if __name__ == "__main__": # Uppdatera in_use profile.update_time() try: - p = profile_picture_reactions( - profile, user, mode=mode - ) - if isinstance(p, Profile): - profile = p + if not check_for_user(user.username): + p = profile_picture_reactions(profile, user, mode=mode) + if isinstance(p, Profile): + profile = p except Exception as e: # Fel4 write_error( @@ -183,32 +201,36 @@ if __name__ == "__main__": ) _print(profile, user, f"\nFel: {str(user.username)}\n") sleep_(15) - + if not profile.blocked: _print(profile, user, f"Klar med {user.username} \n") # Rotera fb-profiler if count_friends > 2 * mode_nr: if random.randrange(0, 2, 1) == 1: - profile = new_profile() + profile = new_profile(container, proxieservers=proxieservers) count_friends = 0 _print(profile, user, f"Växlar till {profile.name}") elif count_friends > 4 * mode_nr: - profile = new_profile() + profile = new_profile(container, proxieservers=proxieservers) count_friends = 0 _print(profile, user, f"Växlar till {profile.name}") elif profile.blocked: - _print(profile, user, f"Tar bort {profile.name}\n".upper(), sleeptime=1) - profile = blocked_profile(profile) - _print(profile, user, f"Växlar till {profile.name}") - - + profile = blocked_profile(profile, proxieservers=proxieservers) + + _print(profile, None, f"Klar med alla vänner.") + sleep(3) + # Hämta ny användare från databasen när alla är genomgångna while True: - user = get_user(collection=lookups) - if user == None: + new_user = get_user(collection=lookups) + print(new_user) + _print(profile, None, f"Ny user hämtad") + if new_user == None: sleep(300) + _print(profile, None, "Väntar på ny user.") else: - user = User(str(user['_key']).strip(), mode) + user = User(str(new_user["_key"]), mode) + _print(profile, user, f"Förberett ny user: {user.username}") break diff --git a/facebook/arangodb.py b/facebook/arangodb.py index 5dac7b3..9e119a5 100644 --- a/facebook/arangodb.py +++ b/facebook/arangodb.py @@ -2,38 +2,34 @@ from getpass import getpass from random import randint from time import sleep import json +from datetime import datetime -import nacl.secret -import nacl.utils from arango import ArangoClient from config import * -# Starta koppling till arangodb -# Avkryptera lösen till arango -try: - # Om scriptet körs på Macbook finns löseordet i en fil - with open("password_arango.txt") as f: - pwd = f.readline() -except FileNotFoundError: - for i in range(0, 6, 1): - if i == 5: - exit() - try: - key = "sssladnnklja" + getpass() - pwd = ( - nacl.secret.SecretBox(key.encode()) - .decrypt(pwd_arango, encoder=nacl.encoding.HexEncoder) - .decode("utf-8") - ) - break - except: - print("Fel lösenord.") - sleep(1) -db = ArangoClient(hosts=host_arango).db(db_arango, username=user_arango, password=pwd) +for i in range(0, 6, 1): + if i == 5: + exit() + try: + # Om scriptet körs på Macbook finns lösenordet i en fil + with open("../password_arango.txt") as f: + pwd = f.readline() + except FileNotFoundError: + if pwd == None: + pwd = getpass(f'Lösenord för {user_arango}: ') -from helpers import now, _print, nowstamp + try: + db = ArangoClient(hosts=host_arango).db(db_arango, username=user_arango, password=pwd) + db.collection('members').random() # För att testa löseordet/kopplingen. + break + except: + print("Fel lösenord.") + sleep(1) + +from helpers import now, _print, nowstamp, sleep_ +from classes import Profile def checked_members(): @@ -64,40 +60,45 @@ def count_docs(col): return cursor.next() -def report_blocked(profile, users): - db.insert_document( - "reports", - { - "_key": now(), - "profile": profile.name, - "users": [user.username for user in users], - }, - overwrite=True, - ) - - -def write_report(users): - db.insert_document( - "reports", - {"_key": now(), "users": [user.username for user in users]}, - overwrite=True, - ) - - -def get_profile(db=db): +def report_blocked(profile): + try: + db.insert_document( + "reports", + { + "_key": str(profile.name).replace(' ', ''), + "profile": profile.__dict__ + }, + overwrite=True, + ) + except: + _print(profile, profile.container, f'Kunde inte rapportera blockerad: {profile.name}.') + + +def get_profile(db=db, proxieservers='mullvad', collection='profiles'): """ Hämtar profil från profiles """ - cursor = db.aql.execute( - """ - FOR doc IN profiles - FILTER doc.in_use < @inuse - RETURN doc - """, - bind_vars={"inuse": nowstamp() - 900}, - ) - profiles = [profile for profile in cursor] - profile = profiles[randint(0, len(profiles) - 1)] - return profile + if proxieservers != 'mullvad': + collection = f'profiles_{proxieservers}' #TODO Byt namn på profiles till profiles_mullvad i DB + + while True: + cursor = db.aql.execute( + """ + FOR doc IN @@col + FILTER doc.in_use < @inuse + RETURN doc + """, + bind_vars={"inuse": nowstamp() - 1200, '@col': collection} + ) + + profiles = [profile for profile in cursor] + if profiles == []: + sleep(180) + if proxieservers=='test': # Om det är ett test + profile = profiles[0] + else: + profile = profiles[randint(0, len(profiles) - 1)] + return profile + def friends_of_user(user): """Returnernar användare som reagerat på user:s bilder""" @@ -113,11 +114,12 @@ def friends_of_user(user): def remove_profile(profile): - + """ Tar bort en blockerad profil från databasen. """ + _print(profile, None, f"Tar bort {profile.name}.") db.collection("profiles").delete( profile.doc["_key"], silent=True, ignore_missing=True ) - _print(profile, None, f"{profile.name} blockerad och borttagen {now()}.") + _print(profile, profile.container, f"{profile.name} blockerad och borttagen {now()}.") # TODO #2 Bättre funktion för backup av databasen @@ -129,16 +131,18 @@ def arango_connect(pwd): ) -def check_for_user(username): +def check_for_user(username, mode=''): """ Checks if a user exist in db and if it's checked """ - # TODO Skulle kunna kolla ex mode också + checked = False if db.collection("members").has(username): - if db.collection('members').get(username)['checked'] == True: - checked = True - else: - checked = False - else: - checked = False + member = db.collection('members').get(username) + if 'checked' in member: + if member['checked'] == True: + checked = True + if mode == 'all': + if 'mode' in member: + if member['mode'] in ['few', 'solo']: + checked = False return checked @@ -149,49 +153,157 @@ def check_for_picture(id): def get_user(collection="lookups"): """ Hämtar användare att kolla upp från lookups """ - cursor = db.aql.execute( - """ - FOR doc IN @@col - RETURN doc - """, - bind_vars={"@col": collection}, - ) - try: - doc = cursor.next() - if "other" not in doc: - doc["other"] = [] + + if collection == "leak_lookups": + doc = db.collection("leak_lookups").random() + doc["other"] = [] db.collection(collection).delete(doc["_key"]) - except StopIteration: - doc = None + else: + cursor = db.aql.execute( + """ + FOR doc IN @@col + RETURN doc + """, + bind_vars={"@col": collection}, + ) + try: + doc = cursor.next() + if "other" not in doc: + doc["other"] = [] + db.collection(collection).delete(doc["_key"]) + except StopIteration: + doc = None return doc def backup(db): - """Skapar en json-backup för specificerade collections. + """Skapar en json-backup och statistik för specificerade collections. Args: db: databaskoppling till aktuell databas """ - d = {} - for col in ["members", "pictures", "picture_reactions", "profiles"]: - l = [] - for doc in db.collection(col).all(): - l.append(doc) - d[col] = l - with open("data/backup.json", "w") as f: - json.dump(d, f) - print(f"Senaste backup: {now()}") - - -def used_servers(): + while True: + if not datetime.now().strftime("%H") == '03' and int(datetime.now().strftime("%M")) < 10: + sleep(120) + continue + collections = ["members", "pictures", "picture_reactions", "profiles", "stats"] + for col in collections: + l = [] + count = 0 + icount = 0 + for doc in db.collection(col).all(): + count += 1 + l.append(doc) + if count == 1000000: + icount += 1 + count = 0 + with open(f"data/backup_{col}_{icount}.json", "w") as f: + json.dump(l, f) + l = [] + icount += 1 + with open(f"data/backup_{col}_{icount}.json", "w") as f: + json.dump(l, f) + l = [] + print(f"Senaste backup: {now()}") + write_stats() + sleep(82800) + + +def write_stats(continuous=False): + while True: + d = {} + for col in db.collections(): + if not col['system']: + d[col['name']] = db.collection(col['name']).count() + del d['stats'] + #d['time'] = now() + cursor = db.aql.execute( + """ + FOR doc IN members + FILTER doc.checked == true + COLLECT WITH COUNT INTO length + RETURN length + """ + ) + d['checked_members'] = cursor.next() + + + # Hur många konton per säljare som finns kvar + cursor = db.aql.execute( + ''' + for doc in profiles + filter has(doc, "vendor") + COLLECT vendor = doc.vendor WITH COUNT INTO length + RETURN { + "vendor" : vendor, + "active" : length + } + ''') + d['active_vendors'] = [doc for doc in cursor] + + d['_key'] = now()[:13] + db.insert_document( "stats", d, overwrite=True) + if continuous: + sleep(86400) + else: + break + +def blocked_profile(profile, proxieservers): + """ Tar bort profilen som blivit blockad och returnerar en ny. """ + _print(profile, None, f'Rapporterar att {profile.name} blockats.') + report_blocked(profile) + _print(profile, None, f'Tar bort {profile.name} från databasen.') + remove_profile(profile) + _print(profile, None, f'Hämtar en ny profil.') + profile = new_profile(profile.container, proxieservers) + return profile + + +def new_profile(container, proxieservers): + """ Hämtar en ny profil. """ + profile = Profile(get_profile(proxieservers=proxieservers), container, proxieservers) + _print(profile, None, f'Hämtade profilen {profile.name}. Login = {profile.logged_in}.') + if profile.logged_in == False: + profile.accept_cookies() + sleep_(2) + profile.login() + sleep_(2) + try: + profile.open(url_bas) + if "accept all" in profile.viewing().text.lower(): + _print(profile, None, f'Accepterar cookies {profile.name}.') + profile.accept_cookies() + sleep_(3) + except: + pass + return profile + +def find_id(): + "https://mbasic.facebook.com/leif.jonsson.98499/about?lst=100064897389168%3A100000134933241%3A1615858816" + cursor = db.aql.execute( """ - FOR doc IN profiles - RETURN doc._key - """ + for doc in members + filter has(doc, "about") + filter doc.facebook_id == '' + filter doc.about != false + return doc + """, ) - return [doc for doc in cursor] + n = 0 + for doc in cursor: + about = doc['about'] + try: + doc['facebook_id'] = about[about.find('%')+3: about.rfind('%')] + db.update_document(doc, silent=True, check_rev=False) + #sleep(0.01) + n += 1 + print(n, end = '\r') + except AttributeError: + pass + + db = ArangoClient(hosts=host_arango).db(db_arango, username=user_arango, password=pwd) diff --git a/facebook/classes.py b/facebook/classes.py index 1a76199..fddc632 100644 --- a/facebook/classes.py +++ b/facebook/classes.py @@ -1,6 +1,6 @@ -import pickle import random from datetime import datetime +from time import sleep import requests import werkzeug @@ -10,8 +10,8 @@ werkzeug.cached_property = werkzeug.utils.cached_property from robobrowser import RoboBrowser from arangodb import db -from config import * -from helpers import sleep_, update_cookie, write_error, nowstamp +from config import url_bas +from helpers import sleep_, update_cookie, write_error, nowstamp, _print class User: @@ -82,6 +82,8 @@ class Picture: self.url = "" self.no_reactions = "" self.reactions = [] + self.src = "" + def add_to_db(self): db.insert_document( @@ -93,6 +95,7 @@ class Picture: "url": self.url, "no_reactions": self.no_reactions, "user": self.user, + "src": self.src, }, overwrite_mode="update", silent=True, @@ -101,15 +104,16 @@ class Picture: class Profile: - def __init__(self, profile, container): + def __init__(self, profile, container, proxieservers): """Creates a new profile to do searches with. Args: profile (dict): Document fetched from database. + container (str): Docker container that runs the script. """ self.doc = profile - + # Användaruppgifter self.name = self.doc["name"].strip() self.email = self.doc["email"] @@ -118,46 +122,79 @@ class Profile: self.cookie = self.doc["cookie"] self.useragent = self.doc["useragent"] + self.proxieservers = proxieservers self.blocked = False - self.container = container + self.container = str(container) self.users_checked = 0 + self.write = True # Ange proxies session = requests.Session() - session.proxies = { - "https": "socks5://'8155249667566524'@{}".format(self.server), - "http": "socks5://'8155249667566524'@{}".format(self.server), - } + session.proxies = self.doc["proxies"] # Starta browser - # user_agent = "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) CriOS/56.0.2924.75 Mobile/14E5239e Safari/602.1" user_agent = self.useragent self.browser = RoboBrowser( session=session, user_agent=user_agent, history=False, parser="lxml" ) + + # TODO Ta bort gamla metoden om nya (hämta från doc) fungerar + # try: + # # Försök hämta cookie från fil + # self.browser.session.cookies = pickle.load( + # open("data/cookie_{}.pkl".format(self.name), "rb") + # ) + # self.logged_in = True + try: - self.browser.session.cookies = pickle.load( - open("data/cookie_{}.pkl".format(self.name), "rb") - ) + self.browser.session.cookies.update(self.cookie) self.logged_in = True except: - try: - self.browser.session.cookies.update(self.cookie) - self.logged_in = True - except: - self.logged_in = False + self.logged_in = False def update_time(self): - """ Uppdatera dokumentet i arango. """ + """Uppdatera dokumentet i arango.""" self.doc["in_use"] = nowstamp() db.update_document(self.doc, check_rev=False) def viewing(self): - """ Returnerar browser i html-format """ + """Returnerar browser i html-format""" return self.browser.parsed + def open(self, url): + n = 0 + while True: + n += 1 + sleep(1) + try: + # Försök öppna url, om det misslyckas så vänta lite och försök sen igen + self.browser.open(url) + if "/a/nux/wizard/nav.php?step=phone&skip" in self.viewing(): + self.browser.open( + url_bas + "/a/nux/wizard/nav.php?step=phone&skip" + ) + break + except Exception as e: + print(e) + print(n) + _print(self, None, f"Kunde inte öppna url {url}") + if n == 5: + if "Connection refused" in e: + self.doc["e"] = e + db.insert_document("blocked_profiles", self.doc) + n = 0 + from arangodb import get_profile, remove_profile + + # Ta bort den gamla profilen från databasen och ersätt profile med nytt innehåll från ny profil + remove_profile(self) + self.__init__(get_profile(self.proxieservers), self.container) + _print(self, None, f"Ny profil hämtad {self.email}") + self.update_time() + else: + sleep(40) + def accept_cookies(self): - """ Accepterar cookies """ + """Accepterar cookies""" self.browser.open("https://mbasic.facebook.com") soup = BeautifulSoup(str(self.browser.parsed), "lxml") if "accept all" not in soup.text.lower(): @@ -168,7 +205,7 @@ class Profile: try: form = self.browser.get_form() self.browser.submit_form(form) - print(f"Accepterade cookies för {self.name}") + _print(self, None, f"Accepterade cookies för {self.name}") sleep_(2) update_cookie(self.browser.session.cookies, self) except: @@ -176,10 +213,10 @@ class Profile: write_error(12, self, soup=self.browser.parsed) except: pass - print(f"Accepterade inte cookies för {self.name}") + _print(self, None, f"Accepterade inte cookies för {self.name}") def login(self): - """ Loggar in på Facebook. """ + """Loggar in på Facebook.""" print("Loggar in {}".format(self.name)) @@ -199,16 +236,17 @@ class Profile: # Vänta lite och uppdatera cookie print("Loggade in.") sleep_(2) + self.open(url_bas) + sleep_(2) except TypeError: try: write_error(11, self, soup=soup, profile=self.name) except: pass - def unused(self): - """ Sätter user till False för valda profiler """ - self.doc["in_use"] = False - db.update_document(self.doc, silent=True, check_rev=False) + def update_cookie(self, cookie): + self.cookie = cookie + db.update_document({"_id": self.doc["_id"], "cookie": cookie}, check_rev=False) class Proxies: @@ -232,7 +270,6 @@ class Friend: self.username = "" self.url = "" self.name = "" - self.single = "" def add_to_db(self): db.insert_document( @@ -265,4 +302,3 @@ class Reaction: "picture": self.picture_id, "reaction": self.type, } - diff --git a/facebook/config.py b/facebook/config.py index 7b5963a..7e018b6 100644 --- a/facebook/config.py +++ b/facebook/config.py @@ -1,10 +1,16 @@ +def set_pwd(_pwd): + global pwd + pwd = _pwd + # Info för arangodb user_arango = "Lasse" pwd_arango = "4c071768bedc259288361c07aafd8535fca546086fada4e7b5de4e2bb26b0e70fa8d348c998b90d032a5b8f3fdbae1881b843021e3475198e6fb45f58d8dc450bd52f77d" db_arango = "facebook" -host_arango = 'http://192.168.0.3:8529' +host_arango = 'http://192.168.0.4:8529' #host_arango = "http://arango.lasseedfast.se" # Andra uppgifter -url_bas = "https://mbasic.facebook.com" \ No newline at end of file +url_bas = "https://mbasic.facebook.com" +user_agent = "Mozilla/5.0 (iPhone; CPU iPhone OS 10_3 like Mac OS X) AppleWebKit/602.1.50 (KHTML, like Gecko) CriOS/56.0.2924.75 Mobile/14E5239e Safari/602.1" +mullvad = '8155249667566524' \ No newline at end of file diff --git a/facebook/face_enc b/facebook/face_enc new file mode 100644 index 0000000000000000000000000000000000000000..21d83f45ebdfec586100f3efc303ae51ef24c8bf GIT binary patch literal 446517 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%0A!%7s!% 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 z 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 n or key in friends: + members.append(key) + + # Skapa df med edges + edges = pd.DataFrame( + edges_from_nodes(members, mode="and", simple=False), + columns=["_key", "_to", "_from", "reaction", "picture"], + ) + edges.set_index("_key", inplace=True) + + # En lista på användare att ta med till nätverket + members = list(set(edges["_from"].unique()) | set(edges["_to"].unique())) + + # Skapa noder till nätverket + nodes = nodes_from_list( + members + ) # , return_fields="{'id':doc._key, 'label':doc.name") + nodes = [(i["_key"], i) for i in nodes] + + # Lägg till några kolumner i edges-tabellen + edges._from = edges._from.apply(lambda x: x[8:]) + edges._to = edges._to.apply(lambda x: x[8:]) + edges.picture = edges.picture.apply( + lambda x: re.search("\d+", x).group() + ) # Rensa bort url-info i de fall bilden har fått fel id + + # Hämta bilder för att kunna lägga datum till edges + p = ["pictures/" + i for i in edges.picture.unique().tolist()] + d = {} + pictures = nodes_from_list( + p, collection="pictures", return_fields="{'id': doc._key, 'date':doc.date}" + ) + for picture in pictures: + d[picture["id"]] = convert_date(picture["date"]) + + edges["date"] = edges.picture.apply(lambda x: d[x]) + + # Skapa graf utifrån relationer + G = nx.from_pandas_edgelist( + edges, + source="_from", + target="_to", + edge_attr=["reaction", "date"], #, "now" + create_using=nx.MultiDiGraph, + ) + + # Lägg till noderna i grafen + G.add_nodes_from(nodes) + + # Exportera till filer + nx.write_gexf( + G, + filename + ) + + +if __name__ == "__main__": + export_network(["linda.kakuli"]) + # export_network(input('Member: ')) diff --git a/facebook/gephi.py b/facebook/gephi.py index 5c61b81..1b0c704 100644 --- a/facebook/gephi.py +++ b/facebook/gephi.py @@ -1,6 +1,7 @@ import locale import re from datetime import datetime +from sys import argv import networkx as nx import pandas as pd @@ -25,42 +26,36 @@ def nodes_from_list( return [doc for doc in cursor] + def edges_from_nodes( - nodes, edge_collections=["picture_reactions"], simple=True, mode="or" + nodes, edge_collections=["picture_reactions"], mode="or" ): """ - Returnerar en df med relationer för valda noder och relationtabeller. + Returnerar en dict med relationer för valda noder och relationtabeller. Args: nodes (list): Noder som ska ingå i relationerna edge_collections (list, optional): Relationtabeller att hämta relationer från. Defaults to ['messages']. - simple (bool, optional): Simple ger bara _from, _to och _key. Defaults to True. Returns: - pd.DataFrame: DataFrame. + dict: Dict med relationer """ - if simple: - return_fields = ( - "{'_to': doc._to, '_from': doc._from, '_id':doc._id, '_key':doc._key}" - ) - else: - return_fields = "doc" - + edges = [] for collection in edge_collections: aql_edges = f""" FOR doc IN @@edge_collection FILTER doc._from IN @nodes {mode} doc._to IN @nodes - RETURN {return_fields} + RETURN doc """ cursor = db.aql.execute( aql_edges, bind_vars={ "@edge_collection": collection, "nodes": nodes, - }, + }, stream=True ) edges = edges + [doc for doc in cursor] @@ -89,17 +84,32 @@ def convert_date(date): # return f'{new_date.date().year}-{new_date.date().month}-{new_date.date().day}' -def export_network(member, n=2): - """ Exporterar en gexf-fil med noder utifrån en medlem. """ +def get_edges(member, n=2, lookups=[], common=True): + """ Returnerar en df med edges för vald member. + + Args: + member (str): Username for member. + lookups (list): Användare att hitta gemensamt nätverk för + noncommon (bool): Om den ena användarens förstakontakter ska räknas till den andra användarens nätverk + Returns: + df: Dataframe with edges + """ member = f"members/{member}" + lookups = [f"members/{i}" for i in lookups] member_friends = set() - # Hämta relationer kopplade till member från databasen for edge in edges_from_nodes([member]): member_friends.add(edge["_from"]) member_friends.add(edge["_to"]) - edges = edges_from_nodes(list(member_friends)) + member_friends = list(member_friends) + + if not common: + # Ta bort de andra i lookups så inte de får kompisars kompisar + member_friends = [friend for friend in member_friends if friend not in lookups] # ! Ska den här vara kvar? + for member in lookups: + member_friends.append(member) + edges = edges_from_nodes(member_friends) # Skapa en dict där det syns vem som har interagerat med hur många d = {} @@ -125,29 +135,46 @@ def export_network(member, n=2): # Skapa df med edges edges = pd.DataFrame( - edges_from_nodes(members, mode="and", simple=False), + edges_from_nodes(members, mode="and"), columns=["_key", "_to", "_from", "reaction", "picture"], ) edges.set_index("_key", inplace=True) - # En lista på användare att ta med till nätverket - members = list(set(edges["_from"].unique()) | set(edges["_to"].unique())) + return edges - # Skapa noder till nätverket - nodes = nodes_from_list( - members - ) # , return_fields="{'id':doc._key, 'label':doc.name") - nodes = [(i["_key"], i) for i in nodes] +def members_from_edges(edges): + """ En lista på användare att ta med till nätverket. + + Args: + edges (df): Dataframe with edges. + + Returns: + list: List of unique members in edges (to and from). + """ + + return list(set(edges["_from"].unique()) | set(edges["_to"].unique())) + + +def edges_for_network(edges): + """ Prepare edges for the network + + Args: + edges (df): Dataframe with edges + + Returns: + df: Dataframe with edges prepared for network. + """ # Lägg till några kolumner i edges-tabellen - edges._from = edges._from.apply(lambda x: x[8:]) - edges._to = edges._to.apply(lambda x: x[8:]) + edges._from = edges._from.apply(lambda x: x[8:]) # Ta bort "members/" + edges._to = edges._to.apply(lambda x: x[8:]) # Ta bort "members/" edges.picture = edges.picture.apply( lambda x: re.search("\d+", x).group() ) # Rensa bort url-info i de fall bilden har fått fel id # Hämta bilder för att kunna lägga datum till edges p = ["pictures/" + i for i in edges.picture.unique().tolist()] + d = {} pictures = nodes_from_list( p, collection="pictures", return_fields="{'id': doc._key, 'date':doc.date}" @@ -157,25 +184,145 @@ def export_network(member, n=2): edges["date"] = edges.picture.apply(lambda x: d[x]) + return edges + + +def export_network(member): + """ Exporterar en gexf-fil med noder utifrån en medlem. """ + filename = f"data/{member}_.gexf" + + edges = get_edges(member, n=3) + members = members_from_edges(edges) + # Skapa graf utifrån relationer G = nx.from_pandas_edgelist( - edges, + edges_for_network(edges), source="_from", target="_to", edge_attr=["reaction", "date"], #, "now" create_using=nx.MultiDiGraph, ) + ## Skapa noder till nätverket + nodes = nodes_from_list( + members + ) # , return_fields="{'id':doc._key, 'label':doc.name") + # Lägg till noderna i grafen - G.add_nodes_from(nodes) + G.add_nodes_from([(i["_key"], i) for i in nodes]) # Exportera till filer nx.write_gexf( G, - f"data/network_test.gexf", + filename ) +def common_friends(d, n=2): + """ Filtrera ut gemensamma vänner """ + + common_friends = {} + for _, value in d.items(): + for friend in set(value): + if friend not in common_friends: + common_friends[friend] = 1 + else: + common_friends[friend] += 1 + + l = [] + for key, value in common_friends.items(): + if value >= n: + l.append(key) + + if l == []: + print('Inga gemensamma i nätverken.') + exit() + + return l + + if __name__ == "__main__": - export_network("asifasghar") + + lookups = [ + 'katherine.zimmerman.754', + 'boogiesaman.bakhtiari', + 'lena.tidestromsagstrom', + 'bibi.rodoo', + 'mina.benaissa', + 'henrik.johnsson.73', + 'fabian.asserback', + '100005696055822', + 'fia.wiren', + 'daniel.kjellander.5' + ] + + print('Samlar data för:') + for i in lookups: + print(i) + print(f'({len(lookups)} stycken\n') + + # Hur många vänners vänners ska känna + if len(lookups) == 1: + n = 1 + elif len(argv) > 1: + n = int(argv[1]) + else: + #from math import sqrt + n = round(len(lookups)/2.2 + 1) + print(f'n = {n}') + + if len(lookups) <= 3: + filename = f"../data/{'-'.join(lookups).replace('.','')}.gexf" + else: + from datetime import datetime + filename = f"../data/{datetime.now()}.gexf" + + if len (lookups) == 1: + export_network(lookups[0]) + exit() + + d = {} + for member in lookups: + edges = get_edges(member, lookups=lookups, common = False, n=n) + friends = members_from_edges(edges) + d[member] = friends + print(member, len(friends)) + + # Filtrera gemensamma vänner + common = common_friends(d) + + print('Common friends: ', len(common)) + + edges = pd.DataFrame(edges_from_nodes(common, mode='and')) # and om båda noderna ska vara med i common friends, annars or + + members = members_from_edges(edges) + + edges = edges_for_network(edges) + # Skapa graf utifrån relationer + G = nx.from_pandas_edgelist( + edges, + source="_from", + target="_to", + edge_attr=["reaction", "date"], #, "now" + create_using=nx.MultiDiGraph, + ) + + ## Skapa noder till nätverket + nodes = nodes_from_list( + members + ) # , return_fields="{'id':doc._key, 'label':doc.name") + + # Lägg till noderna i grafen + G.add_nodes_from([(i["_key"], i) for i in nodes]) + + # Exportera till filer + nx.write_gexf( + G, + filename + ) + + + + + #export_network("asifasghar") # export_network(input('Member: ')) diff --git a/facebook/helpers.py b/facebook/helpers.py index 68af4b0..0103bb5 100644 --- a/facebook/helpers.py +++ b/facebook/helpers.py @@ -2,8 +2,9 @@ import pickle import random from datetime import datetime from time import sleep +import json -from arangodb import db +from config import url_bas def sleep_(t): @@ -12,7 +13,7 @@ def sleep_(t): """ variation = 4 # Testa olika sovlängder för att inte få användaren blockerad sleep(t * variation * random.randrange(85, 115, 1) / 100) - if random.randrange(0, 60, 1) == 1: + if random.randrange(0, 50, 1) == 1: longsleep = random.randrange(200, 300) print('') for s in range(0, longsleep): @@ -21,11 +22,14 @@ def sleep_(t): print() sleep(random.randrange(0, 10, 1) / 4) + # TODO #1 spara cookies till db def update_cookie(cookies, profile): """ Uppdaterar cookie för browser """ - with open("data/cookie_{}.pkl".format(profile.name), "wb") as f: - pickle.dump(cookies, f) + # with open("data/cookie_{}.pkl".format(profile.name), "wb") as f: + # pickle.dump(cookies, f) + # cookies_dict = json.dumps(dict(cookies)) + profile.update_cookie(cookies.get_dict()) def write_error(nr, profile, e=" ", traceback="", soup="", user="", url="", url_name=""): @@ -97,18 +101,27 @@ def _print(profile, user, text, end='\n', silent=False, sleeptime=0): end (str, optional): The end value for print. Defaults to '\n'. silent (bool, optional): If a print should be done in the terminal. Defaults to False. """ - from classes import User if silent == False: print(text, end=end) - if isinstance(user, User): + if profile.write == False: + return None + + if profile.container[:4] == 'leak' and len(profile.container) < 7: + _key = f'{profile.container}_{now()[2:10]}' + elif profile.container[:7] == 'lookups': + _key = f'{profile.container}_{now()[2:10]}' + else: + _key = profile.container + + try: if isinstance(text, list): to_print = {user.username: text} else: to_print = f"{user.username} - {text.strip()}" - else: + except: if isinstance(text, list): to_print = {user: text} else: @@ -117,8 +130,40 @@ def _print(profile, user, text, end='\n', silent=False, sleeptime=0): db.insert_document( "prints", - {'_key': str(profile.container), 'print':{now(): to_print}}, + {'_key': _key, 'print':{now(): to_print}}, overwrite_mode="update", silent=True, ) - sleep(sleeptime) \ No newline at end of file + sleep(sleeptime) + + +def check_profile_status(profile, user): + if profile.browser._cursor == -1: # Om ingen sida har öppnats än. + profile.open(url_bas) + if any( + [ + "It looks like you were misusing this feature by going too fast." + in profile.viewing().text, + "Access Denied" in profile.viewing().text, + "Your Account Has Been Disabled" in profile.viewing().text + ] + ): + _print(profile, user, f"{profile.name} blocked\n".upper(), sleeptime=1) + _print(profile, user, profile.viewing().text, sleeptime=1) + profile.blocked = True # Nu tar jag bort dem, kan göras på annat sätt kanske? + + elif "accept all" in profile.viewing().text.lower(): + profile.accept_cookies() + sleep_(3) + profile.open(user.url_photos) + elif ( + profile.viewing().find("title").text.strip() == "Log in to Facebook | Facebook" + ): + sleep_(5) + profile.login() + sleep_(5) + profile.open(user.url_photos) + + return profile + +from arangodb import db \ No newline at end of file diff --git a/facebook/images.py b/facebook/images.py new file mode 100644 index 0000000..352f27b --- /dev/null +++ b/facebook/images.py @@ -0,0 +1,70 @@ +import requests +import os +from datetime import date, datetime, timedelta +from time import sleep + +from arangodb import db + + +def download_image(url, user, id): + + # Kolla så användarmappen finns + if not os.path.isdir(f'../profile_pictures/{user}'): + os.mkdir(f'../profile_pictures/{user}') + + # Ladda ner bilden + r = requests.get(url) + if r.text == 'URL signature expired': + print('För gammal länk.') + exit() + elif r.status_code == 403: + exit() + img_data = r.content + with open(f'../profile_pictures/{user}/{id}.jpg', 'wb') as handler: + handler.write(img_data) + + +def get_pictures(day): + cursor = db.aql.execute( + """ + for doc in members + filter doc.fetched == @date + filter has(doc, "checked_pictures") + filter not has(doc, "pictures_downloaded") + return {'member': doc._key, 'pictures':doc.checked_pictures} + """, + bind_vars={'date': day} + ) + + for doc in cursor: + pictures = [] + for picture in doc['pictures']: + pictures.append(picture[picture.find('fbid=')+5:]) + + + cursor = db.aql.execute( + """ + for doc in pictures + filter doc._key in @list + limit 10 + return {'_key': doc._key, 'user':doc.user, 'url': doc.src} + """, + bind_vars={"list": pictures}, + ) + + for picture in cursor: + download_image(picture['url'], picture['user'], picture['_key']) + print(picture['_key']) + sleep(2) + + db.update_document({'_id': 'members/' + str(doc['member']), 'pictures_downloaded': True}, silent=True, check_rev=False) + +def old_pics(): + if not os.path.isdir(f'../profile_pictures'): + os.mkdir(f'../profile_pictures') + start = date.today() + for i in range(1,60): + d = start - timedelta(days=i) + get_pictures(d.strftime('%Y%m%d')) + + diff --git a/facebook/images_pi.py b/facebook/images_pi.py new file mode 100644 index 0000000..e7bec63 --- /dev/null +++ b/facebook/images_pi.py @@ -0,0 +1,168 @@ +import os +from datetime import date, datetime, timedelta +from getpass import getpass +from time import sleep +import random + +import requests +import urllib3 + +urllib3.disable_warnings() +from arango import ArangoClient + + +def download_image(url, user, id): + + # Ladda ner bilden + while True: + try: + server = servers_mullvad[random.randint(0, len(servers_mullvad)-1)] + proxies = { + "https": "socks5://'8155249667566524'@{}".format(server), + "http": "socks5://'8155249667566524'@{}".format(server), + } + r = requests.get(url, proxies=proxies) + break + except requests.exceptions.ConnectionError: + sleep(300) + + if r.text == "URL signature expired": + print("För gammal länk.") + exit() + elif r.status_code == 403: + exit() + + image_name = f"profile_pictures/{user}/{id}.jpg" + img_data = r.content + with open(image_name, "wb") as handler: + handler.write(img_data) + + nc_path = f"https://nc.lasseedfast.se/remote.php/dav/files/Lasse/profile_pictures/{user}/{id}.jpg" + + headers = {"Content-type": "image/jpeg", "Slug": "heart"} + while True: + try: + r = requests.put( + nc_path, data=open(image_name, "rb"), headers=headers, auth=auth, verify=False + ) + break + + except: + print('Kunde inte ladda upp', nc_path) + sleep(5) + + print(f"{user}\t{id}\t{r.status_code}") + + +def get_pictures(day): + cursor = db.aql.execute( + """ + for doc in members + filter doc.fetched == @date + filter has(doc, "checked_pictures") + filter not has(doc, "pictures_downloaded") + return {'member': doc._key, 'pictures':doc.checked_pictures} + """, + bind_vars={"date": str(day)}, + ) + + for doc in cursor: + user = doc["member"] + + # Skapa mapp för användarens bilder på NC... + nc_path = f"https://nc.lasseedfast.se/remote.php/dav/files/Lasse/profile_pictures/{user}" + while True: + try: + requests.request("MKCOL", nc_path, verify=False, auth=auth) + break + except: + print('Kunde inte skapa', nc_path) + sleep(5) + + # ...och på datorn (för backup) + if not os.path.isdir(f"profile_pictures/{user}"): + os.mkdir(f"profile_pictures/{user}") + + pictures = [] + for picture in doc["pictures"]: + pictures.append(picture[picture.find("fbid=") + 5 :]) + + cursor = db.aql.execute( + """ + for doc in pictures + filter doc._key in @list + limit 10 + return {'_key': doc._key, 'user':doc.user, 'url': doc.src} + """, + bind_vars={"list": pictures}, + ) + + for picture in cursor: + while True: + download_image(picture["url"], picture["user"], picture["_key"]) + sleep(1) + break + + db.update_document( + {"_id": "members/" + str(doc["member"]), "pictures_downloaded": True}, + silent=True, + check_rev=False, + ) + + +# def old_pics(): +# if not os.path.isdir(f'profile_pictures'): +# os.mkdir(f'profile_pictures') +# start = date.today() +# for i in range(1,60): +# d = start - timedelta(days=i) +# get_pictures(d.strftime('%Y%m%d')) + + +if __name__ == '__main__': + # Info för arangodb + user_arango = "Pi" + db_arango = "facebook" + host_arango = "http://192.168.0.3:8529" + + + # Starta koppling till arangodb + # Avkryptera lösen till arango + pwd = getpass("Arangolösenord för Pi: ") + + + db = ArangoClient(hosts=host_arango).db(db_arango, username=user_arango, password=pwd) + auth = ("Lasse", "affix-sip-jejune-epigraph-ENTROPY-stupefy1") + + servers_mullvad = [ + "se15-wg.socks5.mullvad.net:1080", + "se17-wg.socks5.mullvad.net:1080", + "se18-wg.socks5.mullvad.net:1080", + "se19-wg.socks5.mullvad.net:1080", + "se21-wg.socks5.mullvad.net:1080", + "se22-wg.socks5.mullvad.net:1080", + "se23-wg.socks5.mullvad.net:1080", + "se3-wg.socks5.mullvad.net:1080", + "se5-wg.socks5.mullvad.net:1080", + "se9-wg.socks5.mullvad.net:1080", + "se10-wg.socks5.mullvad.net:1080", + "se2-wg.socks5.mullvad.net:1080", + "se6-wg.socks5.mullvad.net:1080", + "se7-wg.socks5.mullvad.net:1080", + "se8-wg.socks5.mullvad.net:1080", + "se13-wg.socks5.mullvad.net:1080", + "se14-wg.socks5.mullvad.net:1080", + "se26-wg.socks5.mullvad.net:1080", + "se27-wg.socks5.mullvad.net:1080", + "se28-wg.socks5.mullvad.net:1080", + ] + + if not os.path.isdir("profile_pictures"): + os.mkdir("profile_pictures") + + while True: + today = date.today().strftime('%Y%m%d') + get_pictures(today) + yesterday = date.today() - timedelta(days=1) + get_pictures(yesterday.strftime('%Y%m%d')) + sleep(300) diff --git a/facebook/modemtest.py b/facebook/modemtest.py new file mode 100644 index 0000000..a427103 --- /dev/null +++ b/facebook/modemtest.py @@ -0,0 +1,45 @@ +import subprocess +import requests +from selenium import webdriver +from selenium.webdriver.chrome.options import Options +from time import sleep + +while True: + wlan = subprocess.Popen(['iwgetid'], stdout=subprocess.PIPE) + wlan =wlan.communicate()[0].decode() + if '4G-UFI-5671' in wlan: + print('Sucess') + break + else: + sleep(20) + +print('Nuvarande ip:', requests.get('https://api.ipify.org').text) + +# Set up selenium browser +options = Options() +options.headless = True +browser = webdriver.Chrome(options=options) + +# Login to modem +browser.get('http://192.168.100.1/cellweb/login.asp') +sleep(3) +username = browser.find_element_by_id("user_name") +password = browser.find_element_by_id("user_password") +username.send_keys("admin") +password.send_keys("1340asde") + +# Go to reboot and accept +browser.find_element_by_xpath("/html/body/section/form/button").click() # Login +sleep(1) +browser.find_element_by_xpath("/html/body/section/div[2]/div[6]/a").click() # More +sleep(1) +browser.find_element_by_xpath("/html/body/section[2]/div/div[2]/div/a").click() # Reboot +sleep(1) +browser.find_element_by_xpath("/html/body/div[4]/div/div/div[2]/div[2]").click() # Accept +sleep(1) +browser.switch_to_alert().accept() # Accept again (alert) +browser.close() +sleep(120) + + +print('Ny ip:', requests.get('https://api.ipify.org').text) diff --git a/facebook/scrapers.py b/facebook/scrapers.py index 0f9bc84..3795536 100644 --- a/facebook/scrapers.py +++ b/facebook/scrapers.py @@ -1,19 +1,18 @@ import re import traceback +import requests -from arangodb import db +from arangodb import db, check_for_picture from classes import Friend, Picture, Reaction from config import * -from helpers import sleep_, update_cookie, write_error, _print +from helpers import sleep_, update_cookie, write_error, _print, check_profile_status -def profile_picture_reactions( - profile, user, first_user=False, mode="all" -): - #try: +def profile_picture_reactions(profile, user, first_user=False, mode="all"): + # try: # Fixa url:er osv - + if user.username.isnumeric(): user.url = url_bas + "/profile.php?id=" + str(user.username) user.url_photos = user.url + "&v=photos" @@ -25,25 +24,11 @@ def profile_picture_reactions( user.url_photos = user.url + "/photos" # Gå till sidan för profilbilder - profile.browser.open(user.url_photos) - #print(profile.viewing()) + profile.open(user.url_photos) + # print(profile.viewing()) sleep_(4) - if "Your Account Has Been Disabled." in profile.viewing(): - _print(profile, user, f"{profile.name} blocked\n".upper(), sleeptime=1) - profile.blocked = True - return profile - elif 'It looks like you were misusing this feature by going too fast.' in profile.viewing().text: - profile.blocked = True # Nu tar jag bort dem, kan göras på annat sätt kanske? - return profile - elif "accept all" in profile.viewing().text.lower(): - profile.accept_cookies() - profile.browser.open(user.url_photos) - elif profile.viewing().find('title').text.strip() == 'Log in to Facebook | Facebook': - sleep_(5) - profile.login() - sleep_(5) - profile.browser.open(user.url_photos) + profile = check_profile_status(profile, user) user.name = user.username # Om inte namnet hittas senare try: @@ -65,13 +50,17 @@ def profile_picture_reactions( if first_user == True: _print(profile, user, profile.viewing().prettify()) exit() - _print(profile, user, f"Hämtar reaktioner på profilbilder för {user.name} ({user.username})") + _print( + profile, + user, + f"Hämtar reaktioner på profilbilder för {user.name} ({user.username})", + ) # Hitta länk till olika saker hos användarem, inkl facebook-id for a in profile.viewing().find_all("a", href=True): if "Profile pictures" in a.text: - user.url_album = url_bas + a["href"] # Länk till album för profilbulder + user.url_album = url_bas + a["href"] # Länk till album för profilbilder if "profile_id" in a["href"]: l = a["href"] try: @@ -83,6 +72,7 @@ def profile_picture_reactions( user.url_likes = url_bas + a["href"] if "About" in a.text: user.url_about = url_bas + a["href"] + user.id = user.url_about[user.url_about.find('%')+3: user.url_about.rfind('%')] if "Timeline" in a.text: user.url_timeline = url_bas + a["href"] if "Cover photos" in a.text: @@ -101,7 +91,7 @@ def profile_picture_reactions( # Gå till profilbilden (den första som kommer upp när man går till profilen) # Om profilen inte har profilalbum - if not hasattr(user, "url_album"): + if not hasattr(user, "url_album"): write_error(9, profile, soup=profile.viewing(), user=user) if user.url_other_pictures != []: # Använd eventuella extrabilder och ta bort den från användaren @@ -114,7 +104,7 @@ def profile_picture_reactions( user.checked() user.add_to_db() _print(profile, user, "Hittar inget album för profilbilder.") - write_error(#fel7 + write_error( # fel7 7, profile, soup=profile.viewing(), @@ -124,10 +114,10 @@ def profile_picture_reactions( ) return profile # ATT GÖRA Här kan andra bilder väljas istället - + # Normalfallet där användaren har profilbildsalbum - else: - profile.browser.open(user.url_album) + else: + profile.open(user.url_album) # Samla alla profilbilder i en lista url_pics = user.url_other_pictures @@ -139,7 +129,7 @@ def profile_picture_reactions( user.profile_pictures = len(url_pics) user.pictures = url_pics except: - _print(profile, user, 'Hittade inga profilbilder'.upper()) + _print(profile, user, "Hittade inga profilbilder".upper()) user.profile_pictures = 0 user.pictures = url_pics user.checked() @@ -150,14 +140,19 @@ def profile_picture_reactions( # Gå igenom valda bilder. for pic in url_pics: + if check_for_picture(pic[pic.find("fbid=") + 5 :]): + continue + # Skriv ut vilken bild som behandlas. - _print(profile, user, + _print( + profile, + user, f"Bild {url_pics.index(pic) + 1} av {user.profile_pictures}", end="\r", ) check_picture(url_bas + pic, user, profile) user.checked_pictures.append(url_bas + pic) - + # Välj vilja bilder som ska kollas. if first_user == False: if mode == "single" and user.reactions > 30: @@ -171,7 +166,7 @@ def profile_picture_reactions( return profile # except Exception as e: - # _print(None, str(e)) + # _print(None, str(e)) # return profile @@ -190,7 +185,7 @@ def check_picture(url_picture, user, profile): sleep_(5) try: - profile.browser.open(picture.url) + profile.open(picture.url) except Exception as e: # Fel3 write_error( 3, @@ -219,9 +214,16 @@ def check_picture(url_picture, user, profile): user=user, traceback=traceback.format_exc(), ) - # TODO #3 lägg till fler bilder som kan gås igenom om det är få profilbilder. - # Hämta länkar för bilden att anvrända sen + try: + for img in profile.viewing().find_all('img'): + if 'https://scontent' in img['src']: + picture.src = img['src'] + + except Exception as e: + pass + + # Hämta länkar för bilden att använda sen # _print(profile, user, profile.viewing().prettify()) for a in profile.viewing().find_all("a", href=True): if all( @@ -251,7 +253,7 @@ def check_picture(url_picture, user, profile): # Hämta reaktioner för bilden sleep_(3) - profile.browser.open(url_reactions) + profile.open(url_reactions) update_cookie(profile.browser.session.cookies, profile) @@ -285,7 +287,7 @@ def check_picture(url_picture, user, profile): try: sleep_(4) - profile.browser.open(url_limit) + profile.open(url_limit) url_limit = "" update_cookie(profile.browser.session.cookies, profile) @@ -299,9 +301,19 @@ def check_picture(url_picture, user, profile): friend.name = friend_html.text friend.url = friend_html["href"] if "profile.php" in friend.url: - friend.username = friend.url[friend.url.find("id=") + 3 :] + if "&paipv" in friend.url: + friend.username = friend.url[ + friend.url.find("=") + 1 : friend.url.find("&") + ] + else: + friend.username = friend.url[friend.url.find("id=") + 3 :] else: - friend.username = friend.url[friend.url.find("/") + 1 :] + if "?" in friend.url: + friend.username = friend.url[ + friend.url.find("/") + 1 : friend.url.find("?") + ] + else: + friend.username = friend.url[friend.url.find("/") + 1 :] reaction = Reaction(user.username, friend.username, picture.id) for type in ["Love", "Wow", "Like", "Care", "Sad", "Angry", "Haha"]: @@ -309,8 +321,11 @@ def check_picture(url_picture, user, profile): reaction.type = type picture.reactions.append(reaction.get_dict()) # Lägg till vännens profil till arrango - friend.add_to_db() - + try: + friend.add_to_db() + except: + _print(profile, user, f"Kunde inte lägga till vän {friend.url}") + except AttributeError as e: # Fel1 write_error( 1, @@ -321,7 +336,7 @@ def check_picture(url_picture, user, profile): traceback=traceback.format_exc(), ) pass - + # Lägg till reaktioner till databasen db.collection("picture_reactions").insert_many( picture.reactions, silent=True, overwrite=True @@ -329,7 +344,7 @@ def check_picture(url_picture, user, profile): db.collection("picture_reactions").insert_many( picture.reactions, silent=True, overwrite=True ) - + # Uppdatera antalet reaktioner användaren fått user.reactions += len(picture.reactions) except Exception as e: # Fel2 @@ -343,4 +358,5 @@ def check_picture(url_picture, user, profile): url_name="url_limit", traceback=traceback.format_exc(), ) - pass \ No newline at end of file + pass + diff --git a/facebook/socks5free.csv b/facebook/socks5free.csv new file mode 100644 index 0000000..30c2e18 --- /dev/null +++ b/facebook/socks5free.csv @@ -0,0 +1,557 @@ +DE;91.198.137.31:3552;FAIL; +FR;54.36.4.70:61432;188.165.211.29;0:00:00.601284 +DE;138.68.82.88:1080;138.68.82.88;0:00:05.222863 +DE;172.104.142.154:35819;172.104.142.154;0:00:02.972221 +MD;185.14.31.113:443;FAIL; +NL;146.185.132.87:31284;146.185.132.87;0:00:00.541678 +UA;46.151.197.254:8080;46.151.197.254;0:00:02.210311 +FI;135.181.184.170:54048;135.181.184.170;0:00:00.720659 +FR;151.106.34.139:1080;FAIL; +NL;88.202.177.242:1090;FAIL; +UA;95.67.99.99:33871;FAIL; +DE;138.201.5.46:1080;138.201.5.46;0:00:07.487491 +DE;159.69.106.103:1080;159.69.106.103;0:00:00.630095 +NL;51.15.78.50:1080;51.15.78.50;0:00:00.564266 +NL;88.202.177.242:1080;FAIL; +SG;113.77.85.215:1081;149.129.48.241;0:00:03.688375 +RU;95.107.37.109:1105;FAIL; +KZ;109.229.161.151:1225;FAIL; +RU;84.22.137.26:9025;84.22.137.26;0:00:09.468929 +US;149.28.126.83:1081;149.28.126.83;0:00:01.023434 +AR;181.3.58.168:1080;FAIL; +US;67.227.193.162:34496;67.227.193.162;0:00:01.318698 +NL;146.185.132.87:44795;146.185.132.87;0:00:02.952634 +US;198.58.119.187:50398;69.164.194.35;0:00:01.449008 +AR;186.126.79.171:1080;FAIL; +CA;192.252.211.197:14921;FAIL; +CA;192.252.209.155:14455;FAIL; +CZ;89.187.144.153:1080;89.187.144.153;0:00:01.096993 +US;209.141.53.246:1080;FAIL; +US;192.111.137.37:18762;FAIL; +CA;192.252.208.67:14287;FAIL; +US;67.55.185.240:1888;FAIL; +NL;142.93.137.235:54866;142.93.137.235;0:00:04.162599 +US;192.111.135.18:18301;FAIL; +US;192.111.138.29:4145;FAIL; +SG;45.77.36.30:24574;45.77.36.30;0:00:02.664875 +US;70.185.68.133:4145;FAIL; +FR;51.68.134.242:25623;51.68.134.240;0:00:05.998615 +FR;193.70.45.126:32821;193.70.45.126;0:00:03.586748 +US;98.162.25.7:31653;FAIL; +US;72.223.168.86:57481;FAIL; +DE;213.136.89.190:18461;213.136.89.190;0:00:03.407266 +DE;101.53.158.48:9051;FAIL; +PL;5.226.69.12:50477;5.226.69.12;0:00:08.327345 +US;98.162.25.29:31679;FAIL; +IN;103.209.64.19:6667;FAIL; +AR;186.126.42.65:1080;200.73.130.62;0:00:11.137412 +US;72.221.196.157:35904;FAIL; +US;72.206.181.105:64935;FAIL; +SG;113.77.86.73:1081;149.129.55.120;0:00:02.697133 +CA;192.252.214.20:15864;FAIL; +RU;109.72.231.37:1080;109.72.231.37;0:00:01.095943 +TR;188.132.179.124:60088;188.132.179.124;0:00:01.228944 +AR;181.3.72.8:1080;200.73.132.176;0:00:17.562909 +GB;157.245.34.127:32215;157.245.34.127;0:00:06.500380 +RU;31.7.232.178:1080;31.7.232.178;0:00:08.192440 +US;72.223.168.73:57494;FAIL; +AR;186.126.135.164:1080;200.73.130.62;0:00:14.713391 +IN;165.22.220.151:36362;165.22.220.151;0:00:05.533314 +US;192.111.137.35:4145;FAIL; +BR;186.126.143.88:1080;FAIL; +BR;181.3.51.12:1080;209.14.2.12;0:00:08.158021 +US;104.238.215.49:1080;104.238.215.49;0:00:04.300450 +AR;186.126.163.43:1080;FAIL; +BR;181.6.94.90:1080;FAIL; +AR;181.3.23.13:1080;FAIL; +VN;113.160.188.21:1080;113.160.188.21;0:00:05.010119 +FI;135.181.184.170:22497;135.181.184.170;0:00:09.929478 +FR;51.68.134.247:30204;FAIL; +AR;181.101.2.92:1080;200.73.132.106;0:00:03.141000 +BR;181.101.26.136:1080;FAIL; +BR;181.3.71.184:1080;191.252.103.251;0:00:03.371414 +AR;181.102.21.228:1080;FAIL; +AR;181.3.37.59:1080;FAIL; +AR;186.126.177.123:1080;FAIL; +AR;186.126.151.29:1080;45.235.98.221;0:00:05.725761 +AR;181.3.61.217:1080;FAIL; +AR;181.5.222.133:1080;FAIL; +FR;51.68.134.241:30204;FAIL; +HK;1.65.196.134:1080;1.65.196.134;0:00:04.107338 +BR;181.3.8.101:1080;54.232.66.92;0:00:25.527846 +UA;91.229.123.191:1080;94.153.23.177;0:00:07.271681 +AR;181.3.62.188:1080;FAIL; +KR;222.99.47.68:8888;FAIL; +KR;119.28.73.113:22225;158.247.225.109;0:00:02.975846 +AR;181.102.5.177:1080;45.235.99.87;0:00:04.846713 +AR;181.101.16.232:1080;FAIL; +AR;181.101.12.108:1080;FAIL; +AR;181.101.38.248:1080;45.235.99.87;0:00:12.370835 +AR;181.3.59.102:1080;FAIL; +FR;195.154.178.247:20152;FAIL; +DE;46.101.218.6:24040;46.101.218.6;0:00:02.524995 +US;173.236.188.154:7595;173.236.184.102;0:00:07.522997 +AR;181.3.4.18:1080;200.69.236.22;0:00:03.333511 +CA;181.101.14.230:1080;FAIL; +DK;142.93.245.247:30588;FAIL; +FR;54.36.4.69:61432;188.165.211.29;0:00:00.679880 +AR;186.152.120.155:1080;45.235.99.88;0:00:13.682541 +IN;27.116.51.181:6667;FAIL; +AR;181.7.201.154:1080;45.235.99.83;0:00:03.619538 +FR;51.68.134.245:25623;51.68.134.240;0:00:03.046891 +US;192.111.139.165:19402;FAIL; +AR;186.126.140.70:1080;FAIL; +US;184.178.172.5:15303;FAIL; +AR;186.126.25.102:1080;200.73.134.139;0:00:18.534001 +US;181.3.66.118:1080;FAIL; +BR;186.126.141.239:1080;177.67.82.171;0:00:20.168977 +DE;78.46.200.13:22039;78.46.200.13;0:00:03.381044 +BR;186.152.119.220:1080;FAIL; +AR;186.152.33.185:10808;FAIL; +US;181.102.84.53:1080;FAIL; +AR;186.152.31.215:1080;FAIL; +BR;186.152.194.140:1080;FAIL; +US;173.236.184.154:22960;173.236.184.139;0:00:02.895083 +FR;137.74.153.106:1080;137.74.153.106;0:00:03.010125 +AR;186.126.32.22:1080;138.99.7.145;0:00:07.475672 +BR;181.101.11.43:1080;FAIL; +US;72.210.252.134:46164;FAIL; +BR;181.3.56.124:1080;FAIL; +AR;181.101.47.84:1080;FAIL; +CA;181.6.141.73:1080;FAIL; +MD;178.175.139.202:57772;178.175.139.202;0:00:01.611892 +PH;210.16.73.82:1080;124.107.231.80;0:00:03.173570 +AR;186.126.44.155:1080;200.89.175.133;0:00:08.703594 +BR;181.101.60.197:1080;104.41.41.29;0:00:07.245720 +KR;125.135.221.94:54557;FAIL; +US;186.126.62.200:1080;FAIL; +GB;178.62.79.115:35580;178.62.79.115;0:00:05.262268 +FI;95.216.176.163:1089;95.216.176.163;0:00:09.142730 +CA;186.126.21.113:1080;FAIL; +AR;181.3.38.147:1080;181.117.241.51;0:00:04.966959 +US;70.166.167.38:57728;FAIL; +AR;181.3.78.111:1080;200.73.131.75;0:00:09.585425 +BR;181.5.244.219:1080;FAIL; +FR;51.68.134.240:25623;51.68.134.240;0:00:08.593545 +US;181.102.16.72:1080;FAIL; +FR;178.32.47.218:50939;178.32.47.218;0:00:06.439677 +US;173.236.189.175:22960;FAIL; +AR;181.7.208.112:1080;FAIL; +IN;103.241.227.110:6667;FAIL; +US;147.135.116.172:53079;147.135.116.172;0:00:02.112520 +AR;186.126.64.146:1080;FAIL; +CA;181.0.12.116:1080;FAIL; +US;198.8.94.170:39074;FAIL; +AR;181.3.76.4:1080;FAIL; +AR;181.7.204.60:1080;FAIL; +AR;181.3.28.148:1080;FAIL; +BR;181.3.74.230:1080;45.162.231.55;0:00:13.378087 +US;113.73.72.183:1080;FAIL; +US;141.98.134.2:1080;141.98.134.2;0:00:03.583016 +CA;192.111.130.5:17002;FAIL; +RU;185.233.202.27:1080;185.233.202.27;0:00:11.702264 +DE;173.212.201.250:47492;173.212.201.250;0:00:07.449093 +SG;206.189.158.28:7905;206.189.158.28;0:00:08.228267 +US;173.236.190.7:7595;173.236.184.102;0:00:05.519787 +US;173.236.188.46:22960;173.236.184.139;0:00:05.490614 +US;173.236.185.99:22960;173.236.184.139;0:00:09.586001 +AR;186.126.73.156:1080;200.73.130.62;0:00:03.150311 +GB;157.245.34.127:61851;157.245.34.127;0:00:04.082666 +TW;60.169.205.61:1080;FAIL; +BR;181.101.47.97:1080;191.233.232.45;0:00:03.439772 +FR;51.68.134.253:25623;51.68.134.240;0:00:08.526576 +AR;181.3.16.106:10808;FAIL; +US;173.236.190.93:22960;FAIL; +US;186.126.99.163:10808;FAIL; +AR;186.152.130.181:1080;200.73.138.194;0:00:10.460878 +AR;186.152.15.200:1080;FAIL; +AR;181.5.232.149:1080;FAIL; +DE;165.22.17.195:5110;165.22.17.195;0:00:04.337353 +FR;51.68.134.244:25623;51.68.134.240;0:00:05.794034 +AR;186.126.80.182:1080;FAIL; +SG;206.189.158.28:53176;206.189.158.28;0:00:04.394778 +AR;186.126.3.27:1080;FAIL; +AR;186.126.17.42:1080;FAIL; +BR;186.126.159.136:1080;FAIL; +BR;186.126.70.165:1080;54.207.134.244;0:00:07.969362 +CL;181.5.217.57:1080;FAIL; +US;66.42.224.229:41679;FAIL; +BR;181.3.2.188:1080;FAIL; +FR;51.68.134.252:25623;51.68.134.240;0:00:03.820479 +BR;181.83.226.81:1080;209.14.2.204;0:00:10.407002 +US;104.238.212.43:1081;104.238.212.43;0:00:03.010979 +BR;186.126.109.207:1080;FAIL; +BR;181.3.39.114:1080;FAIL; +FR;51.68.134.255:22308;51.68.134.240;0:00:05.837994 +US;184.178.172.18:15280;FAIL; +FR;51.68.134.247:25623;51.68.134.240;0:00:05.294231 +AR;181.3.84.123:1080;45.235.99.87;0:00:07.781855 +AR;186.126.51.206:1080;FAIL; +BR;181.83.228.198:1080;FAIL; +AR;186.126.40.168:1080;FAIL; +US;181.0.8.189:1080;FAIL; +AR;181.101.35.11:1080;FAIL; +US;104.238.111.218:57978;104.238.111.218;0:00:06.871360 +CA;181.3.20.113:10808;FAIL; +FR;51.75.42.95:25623;51.68.134.240;0:00:04.044253 +US;173.236.187.212:22960;173.236.184.139;0:00:03.293691 +BR;181.3.65.241:1080;FAIL; +US;173.236.186.231:22960;173.236.184.139;0:00:03.276001 +US;165.227.177.113:24586;165.227.177.113;0:00:05.401278 +CA;186.126.58.189:10808;51.222.141.137;0:00:04.245833 +DE;176.9.160.118:22836;FAIL; +US;74.208.101.185:31200;FAIL; +US;186.126.166.22:1080;FAIL; +AR;181.101.33.157:1080;45.235.99.83;0:00:05.120106 +AR;186.126.110.76:1080;FAIL; +US;186.126.170.254:1080;FAIL; +FR;51.68.134.251:25623;51.68.134.240;0:00:06.095322 +BR;186.126.74.124:1080;FAIL; +IN;43.224.10.32:6667;FAIL; +US;95.217.132.133:3178;FAIL; +US;157.230.154.211:28030;157.230.154.211;0:00:03.840172 +IN;140.238.250.54:1080;140.238.250.54;0:00:04.823383 +AR;181.102.134.167:1080;FAIL; +AR;186.126.101.52:1080;FAIL; +CO;181.129.7.202:6699;181.129.7.202;0:00:02.020779 +US;186.126.15.241:10808;FAIL; +AR;181.101.8.41:1080;FAIL; +AR;181.0.0.18:1080;FAIL; +SG;181.3.58.52:1080;FAIL; +AR;181.101.9.46:1080;FAIL; +SG;129.226.196.49:41789;129.226.196.49;0:00:02.896387 +CA;192.111.129.145:16894;FAIL; +AR;181.3.51.132:1080;FAIL; +AR;181.3.10.74:1080;FAIL; +BR;181.3.9.61:1080;FAIL; +AR;181.3.49.78:1080;FAIL; +GB;181.101.52.44:1080;FAIL; +US;69.61.200.104:36181;FAIL; +BR;186.126.177.239:1080;FAIL; +BR;186.152.122.42:1080;FAIL; +CL;186.126.71.210:1080;170.239.87.87;0:00:10.699452 +US;184.178.172.13:15311;FAIL; +BD;103.85.232.146:1080;FAIL; +US;161.35.137.49:28005;FAIL; +AR;181.101.45.131:1080;FAIL; +US;70.166.167.55:57745;FAIL; +AR;181.3.57.187:1080;FAIL; +NL;188.166.104.152:6683;FAIL; +US;95.217.132.133:3038;FAIL; +IN;103.241.227.98:6667;FAIL; +AR;181.102.47.46:1080;FAIL; +PL;5.226.69.12:41284;5.226.69.12;0:00:05.842418 +AR;186.126.139.224:10808;FAIL; +AR;181.7.197.13:1080;FAIL; +AR;186.152.16.246:1080;FAIL; +US;113.73.72.177:1080;FAIL; +US;72.221.164.34:60671;FAIL; +BR;181.3.68.127:1080;FAIL; +US;173.236.186.236:22960;173.236.184.139;0:00:03.567567 +AR;186.126.167.68:1080;FAIL; +IN;103.240.168.138:6667;FAIL; +US;104.248.0.141:17074;FAIL; +AR;181.5.219.126:1080;FAIL; +CA;186.152.115.63:1080;FAIL; +US;132.148.129.108:34289;132.148.129.108;0:00:06.245162 +AR;186.126.138.242:1080;FAIL; +AR;181.102.16.55:1080;FAIL; +US;104.238.215.49:1081;104.238.212.43;0:00:07.598953 +US;147.135.116.172:26522;147.135.116.172;0:00:03.047146 +GB;178.62.79.49:51591;178.62.79.49;0:00:04.168867 +AR;181.3.39.27:1080;FAIL; +BR;181.6.149.14:1080;201.76.56.248;0:00:10.817129 +IN;27.116.51.85:6667;FAIL; +IN;103.216.82.22:6667;FAIL; +SG;206.189.158.28:44880;206.189.158.28;0:00:10.378409 +SK;109.74.144.149:22743;109.74.144.149;0:00:07.030135 +FR;51.68.134.241:25623;51.68.134.240;0:00:08.225295 +AR;181.6.8.208:10808;200.73.132.2;0:00:14.850405 +AR;186.152.4.160:1080;FAIL; +AR;181.3.46.25:1080;FAIL; +US;208.102.51.6:58208;FAIL; +AR;181.101.53.240:1080;200.73.132.115;0:00:09.802936 +IN;103.251.225.16:6667;FAIL; +US;173.236.185.19:22960;FAIL; +FR;51.68.134.250:25623;FAIL; +US;50.62.35.16:41644;50.62.35.16;0:00:02.304961 +BR;186.126.129.193:1080;FAIL; +US;166.62.85.224:13954;166.62.85.224;0:00:05.123121 +US;47.100.88.171:20900;FAIL; +US;104.238.111.167:14416;FAIL; +US;64.34.217.33:40741;FAIL; +CA;192.252.215.5:16137;FAIL; +US;173.236.184.139:22960;173.236.184.139;0:00:04.575732 +DE;46.101.218.6:39749;46.101.218.6;0:00:06.758081 +AR;181.101.2.18:1080;FAIL; +US;66.228.36.18:61852;FAIL; +DE;173.212.201.250:23686;FAIL; +IN;43.224.10.35:6667;FAIL; +US;173.236.185.96:22960;FAIL; +AR;181.3.37.213:1080;200.73.130.62;0:00:08.508165 +AR;181.3.49.28:1080;FAIL; +US;173.236.191.119:22960;173.236.184.139;0:00:08.729647 +BR;181.3.67.154:1080;FAIL; +US;104.248.0.141:57391;104.248.0.141;0:00:03.865643 +AR;186.152.149.227:1080;200.73.130.62;0:00:03.071001 +CA;186.126.82.88:1080;FAIL; +AR;186.126.151.73:1080;200.73.130.62;0:00:05.884195 +DE;173.212.201.250:54349;FAIL; +AR;181.0.5.196:1080;FAIL; +NL;142.93.137.235:6191;142.93.137.235;0:00:04.257492 +SG;206.189.158.28:4454;FAIL; +US;157.230.154.211:32381;157.230.154.211;0:00:10.416110 +AR;186.126.49.178:1080;FAIL; +CA;181.3.40.39:1080;FAIL; +US;95.217.132.133:3598;FAIL; +FR;51.68.134.249:30204;FAIL; +US;104.238.111.167:53308;FAIL; +DE;171.221.35.24:1080;FAIL; +NL;188.166.104.152:44924;FAIL; +SG;129.226.196.49:13181;129.226.196.49;0:00:13.210261 +AR;181.3.55.161:1080;FAIL; +HK;101.132.120.74:1080;FAIL; +SE;95.217.132.133:3508;FAIL; +CA;186.126.129.149:1080;51.79.52.142;0:00:08.184306 +AR;181.101.19.224:1080;FAIL; +AR;181.3.7.234:1080;FAIL; +AR;181.6.28.131:1080;FAIL; +BR;181.6.114.165:1080;209.14.2.57;0:00:18.254419 +DE;173.212.201.250:33464;FAIL; +NL;146.185.132.87:55158;FAIL; +HK;150.109.148.234:1234;FAIL; +HU;85.90.161.117:2021;85.90.161.117;0:00:02.127226 +AR;181.5.201.229:1080;200.73.132.119;0:00:15.974410 +US;72.49.49.11:31034;FAIL; +US;97.74.6.64:45683;FAIL; +US;186.126.95.145:10808;FAIL; +DE;54.38.157.22:9999;54.38.157.22;0:00:08.000757 +FR;51.68.134.250:30204;FAIL; +BR;186.126.89.33:1080;FAIL; +FR;51.68.134.242:30204;FAIL; +US;166.62.85.184:42828;166.62.85.184;0:00:04.136324 +US;173.236.186.172:22960;173.236.184.139;0:00:04.403408 +BR;181.83.228.40:1080;FAIL; +US;165.22.13.68:15576;165.22.13.68;0:00:04.907470 +US;104.248.48.169:30588;FAIL; +SG;206.189.92.74:38888;FAIL; +AR;181.3.63.142:1080;FAIL; +AR;186.126.87.224:1080;FAIL; +BR;181.3.46.205:1080;FAIL; +CA;181.3.16.31:1080;FAIL; +SG;45.76.187.35:36600;FAIL; +US;173.236.186.230:22960;173.236.184.139;0:00:03.272663 +RU;171.221.44.248:1080;FAIL; +US;181.7.201.96:1080;FAIL; +US;147.135.116.172:55546;147.135.116.172;0:00:05.626279 +AR;181.3.29.244:1080;FAIL; +BR;186.152.147.113:1080;FAIL; +AR;181.102.81.144:1080;FAIL; +US;104.248.0.141:30247;104.248.0.141;0:00:01.176155 +US;104.238.212.43:1080;104.238.215.49;0:00:05.161615 +BR;186.152.26.161:1080;191.252.102.212;0:00:09.528139 +US;143.110.153.171:3240;FAIL; +PS;213.6.61.150:9999;FAIL; +IN;43.224.10.30:6667;FAIL; +AR;181.101.4.206:1080;FAIL; +SG;206.189.158.28:48500;FAIL; +FR;54.36.246.232:11380;54.36.246.232;0:00:07.263434 +DE;213.136.89.190:4374;FAIL; +SG;206.189.158.28:64028;FAIL; +CL;186.126.131.207:1080;FAIL; +IN;43.224.10.36:6667;43.224.10.36;0:00:08.870324 +CA;181.3.93.39:1080;FAIL; +NL;142.93.138.78:63421;142.93.138.78;0:00:02.779517 +NL;146.185.132.87:49041;146.185.132.87;0:00:08.279986 +DE;95.217.132.133:3008;FAIL; +BR;181.101.52.45:1080;FAIL; +US;192.169.201.24:51100;FAIL; +BR;181.3.24.19:1080;FAIL; +AR;186.126.15.57:1080;FAIL; +PL;5.226.69.12:42717;FAIL; +DE;213.136.89.190:13492;FAIL; +BR;181.102.141.53:1080;FAIL; +US;74.208.102.54:31200;74.208.102.54;0:00:10.078336 +GB;95.217.132.133:3273;FAIL; +CA;159.203.42.128:28393;159.203.42.128;0:00:04.454060 +BR;181.101.29.81:1080;FAIL; +CA;181.3.84.102:1080;FAIL; +US;173.236.189.156:7595;173.236.184.102;0:00:06.332096 +FR;51.68.134.246:30204;FAIL; +BR;181.6.24.228:1080;FAIL; +US;95.217.132.133:3503;FAIL; +AR;186.126.54.106:1080;FAIL; +SG;206.189.158.28:48751;FAIL; +NL;178.62.136.189:51423;178.62.136.189;0:00:06.756095 +US;173.236.187.42:22960;173.236.184.139;0:00:07.256691 +IN;43.224.10.46:6667;FAIL; +US;206.189.231.206:2106;FAIL; +SG;95.217.132.133:3286;FAIL; +SG;129.226.196.49:22157;129.226.196.49;0:00:09.336891 +US;173.236.186.241:22960;173.236.184.139;0:00:02.345419 +HK;119.28.81.177:20412;FAIL; +RU;31.25.243.40:9432;FAIL; +CA;181.3.65.57:1080;51.222.13.156;0:00:06.097943 +AR;181.0.16.160:1080;FAIL; +UA;31.128.248.2:1080;FAIL; +HK;36.150.108.65:1080;FAIL; +RU;31.25.243.40:9159;FAIL; +US;181.0.26.16:1080;FAIL; +CA;181.6.61.241:1080;FAIL; +FR;51.68.134.243:25623;51.68.134.240;0:00:02.797034 +BR;181.3.56.31:1080;20.195.214.142;0:00:05.865545 +US;147.135.116.172:47283;147.135.116.172;0:00:07.138716 +SG;113.77.87.43:1081;FAIL; +FR;51.68.134.255:25623;51.68.134.240;0:00:02.196854 +IN;103.216.82.37:6667;103.216.82.37;0:00:04.271719 +HK;223.199.179.145:1080;FAIL; +US;104.238.111.167:29182;104.238.111.167;0:00:07.471943 +GB;46.101.56.138:33232;FAIL; +DE;213.136.89.190:51808;213.136.89.190;0:00:01.532093 +NL;142.93.137.235:1429;142.93.137.235;0:00:04.408165 +BR;181.5.210.85:1080;FAIL; +US;67.227.193.162:24595;67.227.193.162;0:00:07.794617 +FR;51.68.134.248:25623;51.68.134.240;0:00:07.714408 +HK;153.37.113.125:1080;42.3.24.58;0:00:03.530263 +US;104.248.0.141:23668;104.248.0.141;0:00:01.404311 +AR;186.126.84.156:1080;200.73.128.105;0:00:15.717142 +PH;210.16.73.81:1080;FAIL; +FR;51.68.134.252:30204;FAIL; +CA;181.5.242.212:1080;FAIL; +AR;181.6.14.34:1080;FAIL; +NL;146.185.132.87:59746;FAIL; +SG;206.189.158.28:15615;FAIL; +GB;159.65.26.54:34787;159.65.26.54;0:00:07.312364 +FR;51.68.134.254:25623;51.68.134.240;0:00:09.785792 +SG;206.189.158.28:11007;FAIL; +AR;186.152.26.173:1080;FAIL; +US;206.189.231.206:53323;FAIL; +US;192.169.201.24:7495;FAIL; +AR;181.101.57.210:1080;FAIL; +US;173.236.184.50:7595;FAIL; +US;181.7.211.6:1080;FAIL; +AR;186.126.80.109:1080;FAIL; +CA;181.3.67.17:1080;FAIL; +US;165.22.13.68:25327;165.22.13.68;0:00:06.029895 +CA;159.203.42.128:47524;159.203.42.128;0:00:09.931594 +AR;181.101.57.64:1080;200.73.133.154;0:00:12.503640 +BR;181.6.134.15:1080;FAIL; +AR;181.6.35.81:1080;FAIL; +US;173.236.186.228:22960;FAIL; +CA;181.102.111.148:1080;FAIL; +US;181.3.39.201:1080;FAIL; +DE;95.217.132.133:3412;FAIL; +US;206.189.231.206:50825;206.189.231.206;0:00:01.618712 +SG;206.189.158.28:47419;FAIL; +DE;45.149.76.184:9051;FAIL; +GB;159.65.26.54:2975;FAIL; +US;64.34.216.68:40741;64.34.205.58;0:00:13.192013 +US;173.236.188.107:7595;173.236.184.102;0:00:03.604567 +US;166.62.85.224:42790;FAIL; +DE;181.101.10.10:1080;78.47.73.135;0:00:20.253722 +RU;95.107.37.109:3109;85.26.186.44;0:00:04.610048 +AR;181.3.29.168:1080;FAIL; +AR;181.6.128.215:1080;FAIL; +US;95.217.132.133:3132;FAIL; +AR;186.126.120.70:1080;FAIL; +UA;80.73.9.238:1080;FAIL; +IN;43.224.10.42:6667;43.224.10.42;0:00:12.005869 +US;206.189.180.62:7934;FAIL; +AR;181.3.52.116:1080;FAIL; +AR;181.3.91.214:1080;FAIL; +DE;213.136.89.190:56844;FAIL; +BR;181.7.198.151:1080;191.252.113.106;0:00:15.269279 +US;104.248.0.141:54251;FAIL; +GB;176.58.100.26:27016;FAIL; +HK;113.240.216.243:1080;FAIL; +AR;186.126.66.41:1080;FAIL; +US;173.236.189.250:7595;FAIL; +BR;181.5.230.16:1080;191.252.113.106;0:00:19.073131 +US;50.62.35.16:29643;FAIL; +IN;103.21.163.76:6667;103.21.163.76;0:00:08.463147 +DK;65.21.49.222:9174;FAIL; +US;104.238.97.215:7772;FAIL; +AR;181.3.68.52:1080;FAIL; +AR;186.126.92.77:1080;FAIL; +US;95.217.132.133:3141;FAIL; +BR;186.126.168.161:1080;FAIL; +DE;46.4.156.212:18588;FAIL; +SG;206.189.158.28:7476;FAIL; +AR;181.6.114.157:1080;200.73.132.187;0:00:13.969104 +US;181.102.141.210:1080;FAIL; +BR;181.5.212.118:1080;FAIL; +SG;45.76.187.35:44560;45.76.187.35;0:00:09.819446 +AR;186.152.150.124:1080;FAIL; +AR;186.126.141.216:1080;FAIL; +CA;186.152.114.192:1080;FAIL; +US;173.236.191.150:22960;173.236.184.139;0:00:09.824398 +AR;181.7.207.196:1080;FAIL; +JP;138.91.19.96:1953;138.91.19.96;0:00:12.281648 +CL;186.126.48.110:1080;FAIL; +US;74.208.101.185:44614;74.208.102.54;0:00:10.538888 +AR;181.101.53.210:1080;FAIL; +US;65.21.49.222:9270;FAIL; +US;173.236.189.19:22960;FAIL; +US;95.217.132.133:3137;FAIL; +AR;186.126.42.157:1080;FAIL; +US;173.236.189.188:22960;173.236.184.139;0:00:05.774545 +US;8.210.163.246:50001;FAIL; +DE;213.136.89.190:5136;FAIL; +US;173.236.186.235:22960;173.236.184.139;0:00:04.093197 +AR;186.126.176.41:1080;FAIL; +US;173.236.189.191:22960;173.236.184.139;0:00:02.491511 +US;173.236.188.227:7595;FAIL; +SG;206.189.158.28:21471;206.189.158.28;0:00:07.368676 +US;95.217.132.133:3463;FAIL; +US;173.236.186.1:22960;FAIL; +BR;186.126.101.194:1080;FAIL; +AR;181.101.48.228:1080;FAIL; +US;95.217.132.133:3443;FAIL; +HK;119.28.81.177:59430;FAIL; +AR;181.3.27.242:10808;FAIL; +AR;181.0.30.128:1080;FAIL; +US;173.236.186.167:22960;173.236.184.139;0:00:06.491244 +PL;5.226.69.12:46975;5.226.69.12;0:00:07.836800 +NL;142.93.137.235:38902;142.93.137.235;0:00:02.734874 +US;173.236.188.12:7595;FAIL; +DE;213.136.89.190:52010;FAIL; +US;173.236.188.156:7595;FAIL; +BR;181.3.36.182:1080;FAIL; +FR;51.75.42.92:25623;51.68.134.240;0:00:09.193243 +US;173.236.189.132:22960;173.236.184.139;0:00:03.395630 +US;173.236.185.29:22960;FAIL; +AR;186.126.50.32:1080;FAIL; +RU;31.25.243.40:9261;FAIL; +IR;5.56.134.237:45698;5.56.134.237;0:00:02.117181 +ID;103.224.103.116:1080;FAIL; +CN;110.90.223.72:57114;FAIL; +CN;59.61.160.63:16790;FAIL; +CN;119.187.146.163:1080;119.187.146.163;0:00:03.103184 +CN;59.61.160.179:16790;59.61.160.179;0:00:02.662718 +CN;113.123.0.217:1080;FAIL; +CN;111.1.36.135:9053;115.238.101.42;0:00:02.840302 +CN;111.1.36.132:9053;115.238.101.39;0:00:04.400966 +CN;3.131.207.170:11098;FAIL; +CN;117.174.160.105:1080;117.174.160.105;0:00:05.121497 +CN;36.27.223.80:35880;120.33.231.36;0:00:05.118523 +CN;60.168.25.143:4216;FAIL; +CN;47.104.16.8:6667;FAIL; +CN;114.236.90.5:1080;FAIL; +ID;139.255.89.4:1080;139.255.89.2;0:00:03.779929 +CN;111.225.153.226:57114;FAIL; +CN;134.175.90.111:8889;FAIL; +CN;111.1.36.132:9055;FAIL; +CN;121.206.250.10:57114;121.206.250.10;0:00:02.844775 +CN;42.193.148.214:1080;FAIL; +CN;111.1.36.134:9053;115.238.101.41;0:00:03.048803 +CN;39.96.175.55:1080;FAIL; +CN;47.92.252.178:3129;FAIL; +CN;122.152.219.54:57164;122.152.219.54;0:00:06.862155 +ID;36.89.86.49:56845;36.89.86.49;0:00:03.790392 +CN;36.27.223.80:35101;FAIL; +CN;36.27.223.80:34638;106.114.146.84;0:00:05.630091 +CN;218.64.122.99:7302;218.64.122.99;0:00:09.361461 +ID;36.94.126.50:1080;36.94.126.50;0:00:05.162022 +CN;47.100.19.147:3129;47.100.19.147;0:00:11.339600 +CN;122.152.219.54:1749;FAIL; +CN;59.61.160.153:16790;59.61.160.153;0:00:08.683302 diff --git a/facebook/start_database.py b/facebook/start_database.py new file mode 100644 index 0000000..30d3dc3 --- /dev/null +++ b/facebook/start_database.py @@ -0,0 +1,23 @@ +from arango import ArangoClient +from getpass import getpass +from config import * +from time import sleep + +for i in range(0, 6, 1): + if i == 5: + exit() + try: + # Om scriptet körs på Macbook finns lösenordet i en fil + with open("../password_arango.txt") as f: + pwd = f.readline() + except FileNotFoundError: + if pwd == None: + pwd = getpass(f'Lösenord för {user_arango}: ') + + try: + db = ArangoClient(hosts=host_arango).db(db_arango, username=user_arango, password=pwd) + db.collection('members').random() # För att testa löseordet/kopplingen. + break + except: + print("Fel lösenord.") + sleep(1) diff --git a/facebook/testclass.py b/facebook/testclass.py new file mode 100644 index 0000000..1907a00 --- /dev/null +++ b/facebook/testclass.py @@ -0,0 +1,131 @@ +class Profile: + def __init__(self, profile, container, proxieservers): + """Creates a new profile to do searches with. + + Args: + profile (dict): Document fetched from database. + container (str): Docker container that runs the script. + """ + + self.doc = profile + + # Användaruppgifter + self.name = self.doc["name"].strip() + self.email = self.doc["email"] + self.pwd = self.doc["pwd"] + self.server = self.doc["server"] + self.cookie = self.doc["cookie"] + self.useragent = self.doc["useragent"] + + self.proxieservers = proxieservers + self.blocked = False + self.container = str(container) + self.users_checked = 0 + + # Ange proxies + session = requests.Session() + session.proxies = self.doc['proxies'] + + # Starta browser + user_agent = self.useragent + self.browser = RoboBrowser( + session=session, user_agent=user_agent, history=False, parser="lxml" + ) + try: + self.browser.session.cookies = pickle.load( + open("data/cookie_{}.pkl".format(self.name), "rb") + ) + self.logged_in = True + except: + try: + self.browser.session.cookies.update(self.cookie) + self.logged_in = True + except: + self.logged_in = False + + def update_time(self): + """ Uppdatera dokumentet i arango. """ + self.doc["in_use"] = nowstamp() + db.update_document(self.doc, check_rev=False) + + def viewing(self): + """ Returnerar browser i html-format """ + return self.browser.parsed + + def open(self, url): + n = 0 + while True: + n += 1 + sleep(1) + try: + self.browser.open(url) + if '/a/nux/wizard/nav.php?step=phone&skip' in self.viewing(): + self.browser.open(url_bas + '/a/nux/wizard/nav.php?step=phone&skip') + break + except Exception as e: + print(e) + print(n) + _print(self, None, f'Kunde inte öppna url {url}') + if n == 5: + if 'Connection refused' in e: + self.doc['e'] = e + db.insert_document('blocked_profiles', self.doc) + n = 0 + from arangodb import get_profile, remove_profile + # Ta bort den gamla profilen från databasen och ersätt profile med nytt innehåll från ny profil + remove_profile(self) + self.__init__(get_profile(self.proxieservers), self.container) + _print(self, None, f'Ny profil hämtad {self.email}') + self.update_time() + else: + sleep(40) + + def accept_cookies(self): + """ Accepterar cookies """ + self.browser.open("https://mbasic.facebook.com") + soup = BeautifulSoup(str(self.browser.parsed), "lxml") + if "accept all" not in soup.text.lower(): + sleep_(2) + cookie_accept_url = "https://mbasic.facebook.com/cookie/consent-page" + self.browser.open(cookie_accept_url) + sleep_(2) + try: + form = self.browser.get_form() + self.browser.submit_form(form) + _print(self, None, f"Accepterade cookies för {self.name}") + sleep_(2) + update_cookie(self.browser.session.cookies, self) + except: + try: + write_error(12, self, soup=self.browser.parsed) + except: + pass + _print(self, None, f"Accepterade inte cookies för {self.name}") + def login(self): + """ Loggar in på Facebook. """ + + print("Loggar in {}".format(self.name)) + + # Gå till log in-sidan + self.browser.open("https://mbasic.facebook.com/login") + + # Kolla om browser redan är inloggad + soup = BeautifulSoup(str(self.browser.parsed), "lxml") + if "log out" in soup.text.lower(): + print("Redan inloggad.") + try: + # Hitta och fyll i formulär + form = self.browser.get_form(id="login_form") + form["email"].value = self.email + form["pass"].value = self.pwd + self.browser.submit_form(form, submit=form["login"]) + # Vänta lite och uppdatera cookie + print("Loggade in.") + sleep_(2) + self.open(url_bas) + sleep_(2) + except TypeError: + try: + write_error(11, self, soup=soup, profile=self.name) + except: + pass \ No newline at end of file diff --git a/integrity.py b/integrity.py new file mode 100644 index 0000000..3aad5db --- /dev/null +++ b/integrity.py @@ -0,0 +1,15 @@ +import subprocess +import requests +from time import sleep + +subprocess.run(['sudo', 'wg-quick', 'down', 'integrity']) + +with open('ip.txt', 'a+') as f: + while True: + subprocess.run(['wg-quick', 'up', 'integrity'] ) + sleep(5) + ip = requests.get('https://api.ipify.org').text + print(ip) + f.write(f'{ip}\n') + subprocess.run(['wg-quick', 'down', 'integrity']) + sleep(5) \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 974731b..d58913b 100644 --- a/requirements.txt +++ b/requirements.txt @@ -6,7 +6,7 @@ idna==2.10 lxml==4.6.2 pycparser==2.20 PyJWT==2.0.1 -PyNaCl==1.4.0 +#PyNaCl==1.4.0 PySocks==1.7.1 python-arango==7.1.0 requests==2.25.1 diff --git a/workspace.code-workspace b/workspace.code-workspace index d8e064d..0495218 100644 --- a/workspace.code-workspace +++ b/workspace.code-workspace @@ -5,8 +5,12 @@ }, { "path": "facebook" + }, + { + "path": "../mrkoll" } ], "settings": { + "python.pythonPath": "/Users/Lasse/.pyenv/versions/3.9.5/bin/python" } } \ No newline at end of file