Нередко telegraph используют селлеры на Funpay/playerok для передачи данных аккаунтов. С помощью ChatGPT переписал скрипт, который парсит страницы и сохраняет найденные логины/пароли/почты (Еще раз, код писал чатгпт, сильно не критикуем код) Получаем аккаунты 1. Скачиваем софт по ссылке ниже или вручную https://mega.nz/file/cJQS3KQD#p76jkmAESxum8uZkGzo2UQB8yKkAp2dXhSMmcfdwrB8 либы: aiohttp aiofiles beautifulsoup4 fake-useragent [/CENTER] import asyncio import aiohttp import aiofiles from os import system, path, mkdir, getcwd from bs4 import BeautifulSoup from datetime import datetime, timedelta from fake_useragent import UserAgent class cs: INFO = '\033[93m' GREEN = '\033[92m' RED = '\033[91m' END = '\033[0m' User_Agent = f'{UserAgent().random}' _ = system("cls") name = input(f"{cs.INFO}Name (можно с пробелами): ").replace(" ", "-") # Заменяем пробелы на дефисы offset = input("Offset: ") now = datetime.now() # Список ключевых слов для проверки KEYWORDS = [ "логин", "login", "пароль", "password", "данные", "данные от аккаунта", "аккаунт", "аккаунта", "Steam", "Epic Games", "отзыв", "покупку", "покупка", "подтвердите", "заказ" ] # Ограничение на количество одновременных запросов CONCURRENT_REQUESTS = 10 async def parse(session, semaphore, name, day, month, offset): headers = { 'User-Agent': User_Agent } url = f"https://telegra.ph/{name}-{month}-{day}{offset}" async with semaphore: try: async with session.get(url, headers=headers) as response: if response.status == 404: print(f"{cs.RED}ERROR | 404 Page Not Found | {day}.{month}{offset}{cs.END}") return content = await response.text() except Exception as e: print(f"{cs.RED}ERROR | Failed to fetch {url} | {e}{cs.END}") return soup = BeautifulSoup(content, 'html.parser') # Извлечение текстового контента text_content = soup.get_text().strip() # Проверка на наличие текста и ключевых слов if text_content and any(keyword in text_content.lower() for keyword in KEYWORDS): # Создание директории для сохранения текста base_dir = f"{getcwd()}/media/{name}" if not path.isdir(base_dir): mkdir(base_dir) file_name = f"{base_dir}/{month}_{day}_{offset[1:] if offset else ''}.txt" try: async with aiofiles.open(file_name, "w", encoding="utf-8") as file: # Сохранение URL в файле await file.write(f"URL: {url}\n\n") # Сохраняем URL в начале файла await file.write(text_content) print(f"{cs.GREEN}SAVE | Text saved | {day}.{month}{offset}{cs.END}") except Exception as e: print(f"{cs.RED}ERROR | Failed to save {file_name} | {e}{cs.END}") else: print(f"{cs.RED}SKIP | No keywords found in text | {day}.{month}{offset}{cs.END}") async def main_async(): semaphore = asyncio.Semaphore(CONCURRENT_REQUESTS) tasks = [] async with aiohttp.ClientSession() as session: current_date = now while True: _month = f"{current_date.month:02}" _day = f"{current_date.day:02}" for _offset in range(1, int(offset) + 1): if _offset == 1: off = "" else: off = f"-{_offset}" task = asyncio.create_task(parse(session, semaphore, name, _day, _month, off)) tasks.append(task) # Переход к предыдущему дню current_date -= timedelta(days=1) # Проверка для завершения по желаемому пределу (например, год назад) if current_date < now - timedelta(days=365): break # Ожидание завершения всех задач await asyncio.gather(*tasks) if __name__ == "__main__": asyncio.run(main_async()) [CENTER] Python [/CENTER] import asyncio import aiohttp import aiofiles from os import system, path, mkdir, getcwd from bs4 import BeautifulSoup from datetime import datetime, timedelta from fake_useragent import UserAgent class cs: INFO = '\033[93m' GREEN = '\033[92m' RED = '\033[91m' END = '\033[0m' User_Agent = f'{UserAgent().random}' _ = system("cls") name = input(f"{cs.INFO}Name (можно с пробелами): ").replace(" ", "-") # Заменяем пробелы на дефисы offset = input("Offset: ") now = datetime.now() # Список ключевых слов для проверки KEYWORDS = [ "логин", "login", "пароль", "password", "данные", "данные от аккаунта", "аккаунт", "аккаунта", "Steam", "Epic Games", "отзыв", "покупку", "покупка", "подтвердите", "заказ" ] # Ограничение на количество одновременных запросов CONCURRENT_REQUESTS = 10 async def parse(session, semaphore, name, day, month, offset): headers = { 'User-Agent': User_Agent } url = f"https://telegra.ph/{name}-{month}-{day}{offset}" async with semaphore: try: async with session.get(url, headers=headers) as response: if response.status == 404: print(f"{cs.RED}ERROR | 404 Page Not Found | {day}.{month}{offset}{cs.END}") return content = await response.text() except Exception as e: print(f"{cs.RED}ERROR | Failed to fetch {url} | {e}{cs.END}") return soup = BeautifulSoup(content, 'html.parser') # Извлечение текстового контента text_content = soup.get_text().strip() # Проверка на наличие текста и ключевых слов if text_content and any(keyword in text_content.lower() for keyword in KEYWORDS): # Создание директории для сохранения текста base_dir = f"{getcwd()}/media/{name}" if not path.isdir(base_dir): mkdir(base_dir) file_name = f"{base_dir}/{month}_{day}_{offset[1:] if offset else ''}.txt" try: async with aiofiles.open(file_name, "w", encoding="utf-8") as file: # Сохранение URL в файле await file.write(f"URL: {url}\n\n") # Сохраняем URL в начале файла await file.write(text_content) print(f"{cs.GREEN}SAVE | Text saved | {day}.{month}{offset}{cs.END}") except Exception as e: print(f"{cs.RED}ERROR | Failed to save {file_name} | {e}{cs.END}") else: print(f"{cs.RED}SKIP | No keywords found in text | {day}.{month}{offset}{cs.END}") async def main_async(): semaphore = asyncio.Semaphore(CONCURRENT_REQUESTS) tasks = [] async with aiohttp.ClientSession() as session: current_date = now while True: _month = f"{current_date.month:02}" _day = f"{current_date.day:02}" for _offset in range(1, int(offset) + 1): if _offset == 1: off = "" else: off = f"-{_offset}" task = asyncio.create_task(parse(session, semaphore, name, _day, _month, off)) tasks.append(task) # Переход к предыдущему дню current_date -= timedelta(days=1) # Проверка для завершения по желаемому пределу (например, год назад) if current_date < now - timedelta(days=365): break # Ожидание завершения всех задач await asyncio.gather(*tasks) if __name__ == "__main__": asyncio.run(main_async()) [CENTER] 2. В папке со скриптом создаем папку media 2. Указываем название игры на английском (нужный запрос) 3. Указываем глубину поиска от 1 до 5. 4. Ждем. 5. Получаем аккаунты. Умные могут изменить ключевые слова в коде и парсить что-то свое Монетизируем аккаунты 1. Собираем аккаунты 2. Создаем кучу объявлений на Playerok/Funpay 3. Можете ставить цены и по 5-50 рублей - аккаунты купят. Это сильный профит, учитывая, что мы берем аккаунты на халяву.
Обновил код: - Исправлена ошибка, теперь ищутся все запросы - Доработан код, работает в разы быстрее, благодаря Yowori - Сохраняется URL в том же .txt файле, для случая если данные на скриншотах и т.д Если раньше скрипт не находил нужные Вам игры, попробуйте снова, теперь всё получится
я так палагаю это только для авто выдачи . но сылка ведь одна(после покупки ака) ее нужно самому менять, так что хз
Архистратиг вот код с асинхронностью, работает в разы быстрее import asyncio import aiohttp import aiofiles from os import system, path, mkdir, getcwd from bs4 import BeautifulSoup from datetime import datetime, timedelta from fake_useragent import UserAgent class cs: INFO = '\033[93m' GREEN = '\033[92m' RED = '\033[91m' END = '\033[0m' User_Agent = f'{UserAgent().random}' _ = system("cls") name = input(f"{cs.INFO}Name: ") offset = input("Offset: ") now = datetime.now() # Список ключевых слов для проверки KEYWORDS = [ "логин", "login", "пароль", "password", "данные", "данные от аккаунта", "аккаунт", "аккаунта", "Steam", "Epic Games" ] # Ограничение на количество одновременных запросов CONCURRENT_REQUESTS = 10 async def parse(session, semaphore, name, day, month, offset): headers = { 'User-Agent': User_Agent } url = f"https://telegra.ph/{name}-{month}-{day}{offset}" async with semaphore: try: async with session.get(url, headers=headers) as response: if response.status == 404: print(f"{cs.RED}ERROR | 404 Page Not Found | {day}.{month}{offset}{cs.END}") return content = await response.text() except Exception as e: print(f"{cs.RED}ERROR | Failed to fetch {url} | {e}{cs.END}") return soup = BeautifulSoup(content, 'html.parser') # Извлечение текстового контента text_content = soup.get_text().strip() # Проверка на наличие текста и ключевых слов if text_content and any(keyword in text_content.lower() for keyword in KEYWORDS): # Создание директории для сохранения текста base_dir = f"{getcwd()}/media/{name}" if not path.isdir(base_dir): mkdir(base_dir) file_name = f"{base_dir}/{month}_{day}_{offset[1:] if offset else ''}.txt" try: async with aiofiles.open(file_name, "w", encoding="utf-8") as file: await file.write(text_content) print(f"{cs.GREEN}SAVE | Text saved | {day}.{month}{offset}{cs.END}") except Exception as e: print(f"{cs.RED}ERROR | Failed to save {file_name} | {e}{cs.END}") else: print(f"{cs.RED}SKIP | No keywords found in text | {day}.{month}{offset}{cs.END}") async def main_async(): semaphore = asyncio.Semaphore(CONCURRENT_REQUESTS) tasks = [] async with aiohttp.ClientSession() as session: current_date = now while True: _month = f"{current_date.month:02}" _day = f"{current_date.day:02}" for _offset in range(1, int(offset) + 1): if _offset == 1: off = "" else: off = f"-{_offset}" task = asyncio.create_task(parse(session, semaphore, name, _day, _month, off)) tasks.append(task) # Переход к предыдущему дню current_date -= timedelta(days=1) # Проверка для завершения по желаемому пределу (например, год назад) if current_date < now - timedelta(days=365): break # Ожидание завершения всех задач await asyncio.gather(*tasks) if __name__ == "__main__": asyncio.run(main_async()) Python import asyncio import aiohttp import aiofiles from os import system, path, mkdir, getcwd from bs4 import BeautifulSoup from datetime import datetime, timedelta from fake_useragent import UserAgent class cs: INFO = '\033[93m' GREEN = '\033[92m' RED = '\033[91m' END = '\033[0m' User_Agent = f'{UserAgent().random}' _ = system("cls") name = input(f"{cs.INFO}Name: ") offset = input("Offset: ") now = datetime.now() # Список ключевых слов для проверки KEYWORDS = [ "логин", "login", "пароль", "password", "данные", "данные от аккаунта", "аккаунт", "аккаунта", "Steam", "Epic Games" ] # Ограничение на количество одновременных запросов CONCURRENT_REQUESTS = 10 async def parse(session, semaphore, name, day, month, offset): headers = { 'User-Agent': User_Agent } url = f"https://telegra.ph/{name}-{month}-{day}{offset}" async with semaphore: try: async with session.get(url, headers=headers) as response: if response.status == 404: print(f"{cs.RED}ERROR | 404 Page Not Found | {day}.{month}{offset}{cs.END}") return content = await response.text() except Exception as e: print(f"{cs.RED}ERROR | Failed to fetch {url} | {e}{cs.END}") return soup = BeautifulSoup(content, 'html.parser') # Извлечение текстового контента text_content = soup.get_text().strip() # Проверка на наличие текста и ключевых слов if text_content and any(keyword in text_content.lower() for keyword in KEYWORDS): # Создание директории для сохранения текста base_dir = f"{getcwd()}/media/{name}" if not path.isdir(base_dir): mkdir(base_dir) file_name = f"{base_dir}/{month}_{day}_{offset[1:] if offset else ''}.txt" try: async with aiofiles.open(file_name, "w", encoding="utf-8") as file: await file.write(text_content) print(f"{cs.GREEN}SAVE | Text saved | {day}.{month}{offset}{cs.END}") except Exception as e: print(f"{cs.RED}ERROR | Failed to save {file_name} | {e}{cs.END}") else: print(f"{cs.RED}SKIP | No keywords found in text | {day}.{month}{offset}{cs.END}") async def main_async(): semaphore = asyncio.Semaphore(CONCURRENT_REQUESTS) tasks = [] async with aiohttp.ClientSession() as session: current_date = now while True: _month = f"{current_date.month:02}" _day = f"{current_date.day:02}" for _offset in range(1, int(offset) + 1): if _offset == 1: off = "" else: off = f"-{_offset}" task = asyncio.create_task(parse(session, semaphore, name, _day, _month, off)) tasks.append(task) # Переход к предыдущему дню current_date -= timedelta(days=1) # Проверка для завершения по желаемому пределу (например, год назад) if current_date < now - timedelta(days=365): break # Ожидание завершения всех задач await asyncio.gather(*tasks) if __name__ == "__main__": asyncio.run(main_async())