Почему аргумент не проснулся? - PullRequest
0 голосов
/ 29 сентября 2019

Аргумент работает, когда он передается как строка напрямую, но не когда он передается как переменная.

Я тестировал код без многопоточности, и я тестировал код напрямую, используя правильный пароль в виде строки, а непеременная, и это работает. Я проверил на всех уровнях, что аргумент все еще находится в правильном типе (строке), но в запросе это не будет работать, логин не работает.

import requests
   import threading

   def checkfor(word):
       # word is passed as the password.
       payload = {'email':'my_email_here','password': word,'action':'login'}
       r = requests.post('https://_a_website_here_.org/rpc.php', data=payload)
       lookfor = "userkey"
       page_content = r.content
       if lookfor.encode() in page_content:
           print('[***>>>>>>>] your password is {}.[<<<****]'.format('-'))
       else:
           print('{}'.format('-'))

   threads = []
   pw_list = open('pw_list.txt', 'r') # passwords list
   pw_line = pw_list.readlines()
   pw_linex = pw_line[0:2] # for testing just get 2 first and it has the password set on 2nd place.

   for i in range(len(pw_linex)):
       word = str(pw_line[i])
       print(word)
       t = threading.Thread(target=checkfor, args=[word]) #if I insert the password as a string here it works.
       t.start()
       threads.append(t)

   for thread in threads:
       thread.join()

пароль находится в списке, и он должен войти в систему и сообщить мне найденный пароль. Но это как-то не получается. Может ли кто-нибудь пролить свет на этот код, пожалуйста? THx!

1 Ответ

1 голос
/ 29 сентября 2019

Читая текст из файла, вы получаете строки с "\n" в конце каждой строки - и вы должны удалить его (убрать), чтобы получить правильное слово. Чтобы проверить, нет ли у вас "\n" или пробелов (которых вы не видите), вы можете напечатать ">word<"

#for word in pw_line[:2]: 
for word in pw_linex:
    word = word.strip()
    print(">{}<".format(word)) # older python
    #print(f">{word}<") # python 3.6+
...