Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import requests
- import time
- from datetime import datetime
- import sys
- class TelegraphSearcher:
- def __init__(self):
- self.found_count = 0
- self.checked_count = 0
- self.session = requests.Session()
- self.session.headers.update({
- 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
- })
- def check_url(self, url):
- """Проверяет существует ли страница"""
- try:
- response = self.session.get(url, timeout=10)
- # Проверяем наличие текста "Page does not exist"
- if "Page does not exist" in response.text:
- return url, False
- else:
- return url, True
- except requests.RequestException as e:
- return url, False
- def generate_urls(self, keywords, month, day, start_suffix, end_suffix):
- """Генерирует список URL для проверки"""
- urls = []
- keywords_list = [k.strip() for k in keywords.split(",")]
- # Обработка месяцев
- if month == "all":
- months = [f"{i:02d}" for i in range(1, 13)]
- else:
- months = [month]
- # Обработка дней
- if day == "all":
- days = [f"{i:02d}" for i in range(1, 32)]
- else:
- days = [day]
- print(f"Генерация URL: keywords={keywords_list}, months={months}, days={days}, suffixes={start_suffix}-{end_suffix}")
- for keyword in keywords_list:
- for m in months:
- for d in days:
- for i in range(start_suffix, end_suffix + 1):
- url = f"https://telegra.ph/{keyword}-{m}-{d}-{i}"
- urls.append(url)
- return urls
- def search(self, keywords, month, day, start_suffix, end_suffix, delay_ms=1000):
- """Основная функция поиска"""
- urls = self.generate_urls(keywords, month, day, start_suffix, end_suffix)
- total_urls = len(urls)
- print(f"🔍 Начинаем поиск...")
- print(f"📝 Ключевые слова: {keywords}")
- print(f"📅 Месяц: {month}, День: {day}")
- print(f"🔢 Суффиксы: с {start_suffix} по {end_suffix}")
- print(f"⏱️ Задержка: {delay_ms} мс")
- print(f"📊 Всего URL: {total_urls}")
- print("-" * 50)
- self.found_count = 0
- self.checked_count = 0
- found_urls = []
- for i, url in enumerate(urls, 1):
- try:
- # Показываем прогресс
- progress = (i / total_urls) * 100
- print(f"[{i}/{total_urls}] ({progress:.1f}%) Проверяем: {url}", end="")
- # Проверяем URL
- url, exists = self.check_url(url)
- self.checked_count += 1
- if exists:
- self.found_count += 1
- found_urls.append(url)
- print(" -> ✅ СУЩЕСТВУЕТ")
- else:
- print(" -> ❌ Не найдено")
- except Exception as e:
- print(f" -> ⚠️ Ошибка: {e}")
- self.checked_count += 1
- # Задержка в миллисекундах
- if i < total_urls:
- time.sleep(delay_ms / 1000.0)
- # Вывод результатов
- print("\n" + "="*50)
- print("🎉 ПОИСК ЗАВЕРШЕН!")
- print(f"📊 Проверено: {self.checked_count}/{total_urls}")
- print(f"✅ Найдено: {self.found_count}")
- if found_urls:
- print("\n📋 Найденные страницы:")
- for url in found_urls:
- print(f"🔗 {url}")
- # Сохраняем в файл
- timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
- filename = f"telegraph_found_{timestamp}.txt"
- with open(filename, 'w', encoding='utf-8') as f:
- for url in found_urls:
- f.write(url + '\n')
- print(f"💾 Результаты сохранены в: {filename}")
- else:
- print("😞 Найденные страницы отсутствуют")
- return found_urls
- def main():
- searcher = TelegraphSearcher()
- print("🚀 Telegraph.ph Searcher")
- print("=" * 40)
- # Настройки поиска
- keywords = input("Ключевые слова (через запятую) [pic,photo,test]: ").strip()
- if not keywords:
- keywords = "pic,photo,test"
- month = input("Месяц (01-12 или all) [06]: ").strip()
- if not month:
- month = "06"
- day = input("День (01-31 или all) [11]: ").strip()
- if not day:
- day = "11"
- start_suffix = input("Начальный суффикс [1]: ").strip()
- start_suffix = int(start_suffix) if start_suffix else 1
- end_suffix = input("Конечный суффикс [30]: ").strip()
- end_suffix = int(end_suffix) if end_suffix else 30
- delay_ms = input("Задержка (миллисекунды) [1000]: ").strip()
- delay_ms = int(delay_ms) if delay_ms else 1000
- print("\n" + "="*50)
- try:
- searcher.search(
- keywords=keywords,
- month=month,
- day=day,
- start_suffix=start_suffix,
- end_suffix=end_suffix,
- delay_ms=delay_ms
- )
- except KeyboardInterrupt:
- print("\n⏹️ Поиск прерван пользователем")
- except Exception as e:
- print(f"\n💥 Ошибка: {e}")
- if __name__ == "__main__":
- main()
Advertisement
Add Comment
Please, Sign In to add comment