1. Самый простой - InfoTor. Скачай InfoTor 2 (от y3401)
Запусти программу.
Укажи путь к XML-файлу (или к уже сконвертированной базе SQLite).
Программа сама сконвертирует дамп в быстрый формат и даст удобный поиск с графическим интерфейсом.
Это самый лёгкий вариант - ничего кодировать не нужно.
2. Bash + gawk (для Linux / WSL)
Скрипт, который мы уже делали выше (ищет по словам и выдаёт название + хеш + magnet)
3. Python (самый гибкий вариант)
Код:
python
#!/usr/bin/env python3
"""
Надёжный парсер XML-дампа RuTracker
Итеративный разбор, не грузит весь файл в память
"""
import xml.etree.ElementTree as ET
from pathlib import Path
import sys
def search_rutracker(xml_path: str, query: str):
words = [w.lower() for w in query.split() if w]
if not words:
print("❌ Пустой запрос")
return
# Итеративный парсинг
context = ET.iterparse(xml_path, events=("end",))
for event, elem in context:
if elem.tag != "torrent":
continue
# Поиск по всему тексту элемента (title, description и т.п.)
block_text = ET.tostring(elem, encoding="unicode", method="text").lower()
if not all(word in block_text for word in words):
elem.clear()
continue
# Извлекаем title
title_elem = elem.find("title")
title = title_elem.text.strip() if title_elem is not None and title_elem.text else None
# Хеш лежит прямо в атрибутах самого <torrent>
hash_value = elem.attrib.get("hash")
if title and hash_value and len(hash_value) == 40:
print(f"📁 Название: {title}")
print(f"🔑 Хеш: {hash_value}")
print(f"🧲 Magnet: magnet:?xt=urn:btih:{hash_value}")
print("-" * 70)
elem.clear() # освобождаем память
if __name__ == "__main__":
if len(sys.argv) < 3:
print("Использование:")
print(" python search_rutracker.py <путь_к_xml> \"ключевые слова\"")
print("Пример:")
print(' python search_rutracker.py rutracker.xml "matrix 1999"')
sys.exit(1)
xml_file = sys.argv[1]
search_query = sys.argv[2]
if not Path(xml_file).exists():
print(f"❌ Файл не найден: {xml_file}")
sys.exit(1)
print(f"🔍 Ищем: \"{search_query}\"")
print("=" * 70)
search_rutracker(xml_file, search_query)
Можно доработать: сохранять результаты в CSV, искать только по определённым форумам, извлекать список файлов и т.д.
4. Другие готовые инструменты trusearch - очень мощный CLI-инструмент специально для этих дампов. Он есть на гитхабе.
Конвертеры в SQLite (от y3401, Saiv46 и др.) - после конвертации можно делать быстрые SQL-запросы.