Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import os
- import requests
- import sys
- import subprocess
- import re
- import face_recognition
- import json
- done_checks = []
- social_media = []
- usernames = []
- emails = []
- twitter = []
- instagram = []
- steam = []
- urls = []
- urls_stalk = []
- urls_done = []
- name = ""
- adresse = ""
- compare = False
- first_dl = False
- def stalk(user):
- if len(user) > 1:
- global urls_stalk
- pastebin_url = "https://pastebin.com/u/" + user
- pastebin_str = "s Pastebin - Pastebin.com"
- patreon_url = "https://www.patreon.com/" + user
- patreon_str = 'created_at'
- gutefrage_url = "https://www.gutefrage.net/nutzer/" + user
- gutefrage_str = '<meta name="title" content="Profil von'
- ebay_url = "https://www.ebay.de/usr/" + user
- ebay_str = '<span>Angemeldet seit: </span>'
- twitter_url = "https://twitter.com/" + user
- twitter_str = '<link rel="canonical" href="https://twitter.com/' + user + '">'
- facebook_url = 'https://facebook.com/' + user
- facebook_str = ' hreflang="sv" href="https://sv-se.facebook.com/' + user
- instagram_url = "https://www.instagram.com/" + user + "/"
- instagram_str = '<link rel="alternate" href="https://www.instagram.com/' + user + '/?hl=en" hreflang="en" />'
- steam_url = "https://steamcommunity.com/id/" + user
- steam_str = 'https://steamcommunity-a.akamaihd.net/public/images/skin_1/arrowDn9x5.gif'
- twitch_url = "https://www.twitch.tv/" + user
- twitch_str = "content='twitch://stream/" + user
- lachschon_url = "https://www.lachschon.de/community/user/" + user + "/"
- lachschon_str = '<label>Rang</label>'
- URLS = [pastebin_url, patreon_url, gutefrage_url, ebay_url, facebook_url, twitter_url, instagram_url, steam_url, twitch_url, lachschon_url]
- STRS = [pastebin_str, patreon_str, gutefrage_str, ebay_str, facebook_str, twitter_str, instagram_str, steam_str, twitch_str, lachschon_str]
- for i in range(0, len(URLS)):
- html = getResponse(URLS[i])
- if STRS[i].lower() in str(html).lower():
- print("\t> " + URLS[i])
- urls_stalk.append(URLS[i])
- def get_twitter_img(user):
- url = "https://twitter.com/" + user
- html = subprocess.getoutput("phantomjs html.js " + url)
- image = find_between(html, '<img class="ProfileAvatar-image " src="', '" alt="')
- r = requests.get(image)
- with open('Twitter.jpg', 'wb') as f:
- f.write(r.content)
- def get_instagram_img(user):
- data = {
- 'username': user,
- 'submit': 'View DP'
- }
- response = requests.post('https://fullinstadp.com/index.php', data=data)
- html = response.text
- f = open("Out.html", "w")
- f.write(html)
- f.close
- img_url = find_between(html, '<img class="loading img-rounded center-block img-responsive" src="', '" alt=""')
- r = requests.get(img_url)
- with open('Instagram.jpg', 'wb') as f:
- f.write(r.content)
- def check_mail(string):
- EMAIL_REGEX = re.compile(r"[^@]+@[^@]+\.[^@]+")
- if EMAIL_REGEX.match(string):
- return True
- else:
- return False
- def check_string_mail(string):
- global emails
- splitted = string.split(" ")
- for word in splitted:
- if check_mail(word):
- emails.append(word)
- def check_string_url(string):
- global urls
- for word in string.split(" "):
- try:
- url = re.search("(?P<url>https?://[^\s]+)", word).group("url")
- if '//t.co/' in url:
- last = url[-1:]
- if last == ".":
- url = url.rstrip('.')
- r = requests.get(url)
- url = r.url
- urls.append(url)
- except:
- e = ""
- def check_string_socialmedia(string):
- global social_media
- count = 0
- next = 0
- for word in string.split(" "):
- next = count + 2
- if 'facebook' in word.lower():
- print(string.split(" ")[next])
- count +=1
- def youtube(url):
- url = url + "/about"
- html = subprocess.getoutput("phantomjs html.js " + url)
- tmp_str = html.split('"}},"urlEndpoint":')
- for url in tmp_str:
- #print(url)
- url = find_between(url, '{"url":"', '","target":')
- print(html)
- def grab_instagram(profile):
- global done_checks
- global urls
- global instagram
- global usernames
- global compare
- if not "instagram: " + profile in done_checks:
- if not profile in usernames:
- usernames.append(profile)
- url = "https://www.instagram.com/" + profile + "/"
- html = subprocess.getoutput("phantomjs html.js " + url)
- if '"@type":"Person","name":"' in html:
- display_name = find_between(html, '"@type":"Person","name":"', '","alternateName":"')
- if not display_name in usernames:
- usernames.append(display_name)
- if not "instagram: " + display_name in done_checks:
- print(display_name)
- stalk(display_name)
- instagram.append("Display Name: " + display_name)
- description = find_between(html, '"user":{"biography":"', '","blocked_by_viewer')
- follower = find_between(html, 'edge_followed_by":{"count":', '},"followed_by_viewer')
- check_string_mail(description)
- check_string_url(description)
- instagram.append("Description: " + description)
- instagram.append("Follower: " + follower)
- #get_instagram_img(profile) // Buggy suche nach Alternative zu siehe Funktion
- compare = True
- if not "instagram: " + profile in done_checks:
- done_checks.append("instagram: " + profile)
- def grab_steam(url):
- global done_checks
- global urls
- global usernames
- if not "steam: " + profile in done_checks:
- url = url + "/ajaxaliases/"
- response = requests.get(url)
- html = response.text
- for item in html.split("newname"):
- username = find_between(item, '":"', '","timechanged')
- if not username in usernames:
- usernames.append(username)
- def grab_twitter(profile):
- global done_checks
- global urls
- global adresse
- global usernames
- global twitter
- global first_dl
- if not "twitter: " + profile in done_checks:
- url = "https://twitter.com/" + profile
- urls.append(url)
- html = subprocess.getoutput("phantomjs html.js " + url)
- #variables
- display_name = find_between(html, '<title>', ' (@')
- if not profile in usernames:
- usernames.append(profile)
- if not display_name in usernames:
- usernames.append(display_name)
- if not "twitter: " + display_name in done_checks:
- print(display_name)
- stalk(display_name)
- join_date = find_between(html, 'ProfileHeaderCard-joinDateText js-tooltip u-dir" dir="ltr" title="', '">Beigetreten')
- description = ""
- url = ""
- location = ""
- #if
- if '<meta name="description"' in html:
- description = find_between(html, '<meta name="description" content="', '">')
- description = description.replace(""", "")
- check_string_mail(description)
- check_string_url(description)
- if '<span class="ProfileHeaderCard-urlText u-dir"> <a class="u-textUserColor"' in html:
- tmp = find_between(html, '<span class="ProfileHeaderCard-urlText u-dir">', '</a>')
- url = find_between(tmp, '" title="', '">')
- urls.append(url)
- if 'location":"' in html:
- location = find_between(html, '"location":"', '","url')
- if len(location) > 0:
- adresse = location
- twitter.append("Display Name: " + display_name)
- twitter.append("Join Date: " + join_date)
- twitter.append("Description: " + description)
- twitter.append("URL: " + url)
- twitter.append("Location: " + location)
- twitter.append(" ")
- #if first_dl == False:
- #get_twitter_img(profile)
- #first_dl = True
- if not "twitter: " + profile in done_checks:
- done_checks.append("twitter: " + profile)
- def handle():
- try:
- if sys.argv[1]:
- social_media = sys.argv[1].lower()
- if sys.argv[2]:
- info_type = sys.argv[2].lower()
- if sys.argv[3]:
- infos = sys.argv[3].lower()
- if info_type == "url":
- if social_media == "youtube":
- youtube(infos)
- elif info_type == "profile":
- if social_media == "twitter":
- grab_twitter(infos)
- elif info_type == "user":
- if social_media == "stalk":
- stalk(infos)
- except Exception as e:
- print(e)
- def find_between( s, first, last ):
- try:
- start = s.index( first ) + len( first )
- end = s.index( last, start )
- return s[start:end]
- except ValueError:
- return ""
- def getResponse(url):
- response = requests.get(url)
- #response.raise_for_status()
- data = response.content
- return data
- handle()
- for url in urls_stalk:
- #print(url)
- if 'twitter.com' in url:
- checked = False
- profile = url.split("/")[3]
- for check in done_checks:
- if check == "twitter: " + profile:
- checked = True
- if not checked:
- grab_twitter(profile)
- done_checks.append("twitter:" + profile)
- if 'instagram.com' in url:
- checked = False
- profile = url.split("/")[3]
- for check in done_checks:
- if check == "instagram: " + profile:
- checked = True
- if not checked:
- grab_instagram(profile)
- #print("Download Profile Picture")
- done_checks.append("instagram: " + profile)
- #Steam Check direkt in der Stalk Funktion
- if 'steamcommunity.com' in url:
- checked = False
- profile = url.split("/")[4]
- for check in done_checks:
- if check == "steam: " + profile:
- checked = True
- if not checked:
- grab_steam(url)
- done_checks.append("steam: " + profile)
- print("------------------")
- print("Usernames:")
- print("------------------")
- for user in usernames:
- print(user)
- stalk(user)
- if len(urls) > 0:
- print("------------------")
- print("URLs:")
- print("------------------")
- for url in urls:
- print(url)
- if len(twitter) > 0:
- print("------------------")
- print("Twitter:")
- print("------------------")
- for item in twitter:
- print(item)
- if len(instagram) > 0:
- print("------------------")
- print("Instagram:")
- print("------------------")
- for item in instagram:
- print(item)
- if len(steam) > 0:
- print("------------------")
- print("Steam:")
- print("------------------")
- for item in steam:
- print(item)
- print("------------------")
- print("Sites checked:")
- print("------------------")
- for check in done_checks:
- print(check)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement