Guest User

Untitled

a guest
Nov 20th, 2025
305
0
14 days
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.09 KB | None | 0 0
  1. import requests
  2. import time
  3. from datetime import datetime
  4. import sys
  5.  
  6. class TelegraphSearcher:
  7. def __init__(self):
  8. self.found_count = 0
  9. self.checked_count = 0
  10. self.session = requests.Session()
  11. self.session.headers.update({
  12. 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36'
  13. })
  14.  
  15. def check_url(self, url):
  16. """Проверяет существует ли страница"""
  17. try:
  18. response = self.session.get(url, timeout=10)
  19.  
  20. # Проверяем наличие текста "Page does not exist"
  21. if "Page does not exist" in response.text:
  22. return url, False
  23. else:
  24. return url, True
  25.  
  26. except requests.RequestException as e:
  27. return url, False
  28.  
  29. def generate_urls(self, keywords, month, day, start_suffix, end_suffix):
  30. """Генерирует список URL для проверки"""
  31. urls = []
  32.  
  33. keywords_list = [k.strip() for k in keywords.split(",")]
  34.  
  35. # Обработка месяцев
  36. if month == "all":
  37. months = [f"{i:02d}" for i in range(1, 13)]
  38. else:
  39. months = [month]
  40.  
  41. # Обработка дней
  42. if day == "all":
  43. days = [f"{i:02d}" for i in range(1, 32)]
  44. else:
  45. days = [day]
  46.  
  47. print(f"Генерация URL: keywords={keywords_list}, months={months}, days={days}, suffixes={start_suffix}-{end_suffix}")
  48.  
  49. for keyword in keywords_list:
  50. for m in months:
  51. for d in days:
  52. for i in range(start_suffix, end_suffix + 1):
  53. url = f"https://telegra.ph/{keyword}-{m}-{d}-{i}"
  54. urls.append(url)
  55.  
  56. return urls
  57.  
  58. def search(self, keywords, month, day, start_suffix, end_suffix, delay_ms=1000):
  59. """Основная функция поиска"""
  60.  
  61. urls = self.generate_urls(keywords, month, day, start_suffix, end_suffix)
  62. total_urls = len(urls)
  63.  
  64. print(f"🔍 Начинаем поиск...")
  65. print(f"📝 Ключевые слова: {keywords}")
  66. print(f"📅 Месяц: {month}, День: {day}")
  67. print(f"🔢 Суффиксы: с {start_suffix} по {end_suffix}")
  68. print(f"⏱️ Задержка: {delay_ms} мс")
  69. print(f"📊 Всего URL: {total_urls}")
  70. print("-" * 50)
  71.  
  72. self.found_count = 0
  73. self.checked_count = 0
  74. found_urls = []
  75.  
  76. for i, url in enumerate(urls, 1):
  77. try:
  78. # Показываем прогресс
  79. progress = (i / total_urls) * 100
  80. print(f"[{i}/{total_urls}] ({progress:.1f}%) Проверяем: {url}", end="")
  81.  
  82. # Проверяем URL
  83. url, exists = self.check_url(url)
  84. self.checked_count += 1
  85.  
  86. if exists:
  87. self.found_count += 1
  88. found_urls.append(url)
  89. print(" -> ✅ СУЩЕСТВУЕТ")
  90. else:
  91. print(" -> ❌ Не найдено")
  92.  
  93. except Exception as e:
  94. print(f" -> ⚠️ Ошибка: {e}")
  95. self.checked_count += 1
  96.  
  97. # Задержка в миллисекундах
  98. if i < total_urls:
  99. time.sleep(delay_ms / 1000.0)
  100.  
  101. # Вывод результатов
  102. print("\n" + "="*50)
  103. print("🎉 ПОИСК ЗАВЕРШЕН!")
  104. print(f"📊 Проверено: {self.checked_count}/{total_urls}")
  105. print(f"✅ Найдено: {self.found_count}")
  106.  
  107. if found_urls:
  108. print("\n📋 Найденные страницы:")
  109. for url in found_urls:
  110. print(f"🔗 {url}")
  111.  
  112. # Сохраняем в файл
  113. timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
  114. filename = f"telegraph_found_{timestamp}.txt"
  115. with open(filename, 'w', encoding='utf-8') as f:
  116. for url in found_urls:
  117. f.write(url + '\n')
  118. print(f"💾 Результаты сохранены в: {filename}")
  119. else:
  120. print("😞 Найденные страницы отсутствуют")
  121.  
  122. return found_urls
  123.  
  124. def main():
  125. searcher = TelegraphSearcher()
  126.  
  127. print("🚀 Telegraph.ph Searcher")
  128. print("=" * 40)
  129.  
  130. # Настройки поиска
  131. keywords = input("Ключевые слова (через запятую) [pic,photo,test]: ").strip()
  132. if not keywords:
  133. keywords = "pic,photo,test"
  134.  
  135. month = input("Месяц (01-12 или all) [06]: ").strip()
  136. if not month:
  137. month = "06"
  138.  
  139. day = input("День (01-31 или all) [11]: ").strip()
  140. if not day:
  141. day = "11"
  142.  
  143. start_suffix = input("Начальный суффикс [1]: ").strip()
  144. start_suffix = int(start_suffix) if start_suffix else 1
  145.  
  146. end_suffix = input("Конечный суффикс [30]: ").strip()
  147. end_suffix = int(end_suffix) if end_suffix else 30
  148.  
  149. delay_ms = input("Задержка (миллисекунды) [1000]: ").strip()
  150. delay_ms = int(delay_ms) if delay_ms else 1000
  151.  
  152. print("\n" + "="*50)
  153.  
  154. try:
  155. searcher.search(
  156. keywords=keywords,
  157. month=month,
  158. day=day,
  159. start_suffix=start_suffix,
  160. end_suffix=end_suffix,
  161. delay_ms=delay_ms
  162. )
  163. except KeyboardInterrupt:
  164. print("\n⏹️ Поиск прерван пользователем")
  165. except Exception as e:
  166. print(f"\n💥 Ошибка: {e}")
  167.  
  168. if __name__ == "__main__":
  169. main()
Advertisement
Add Comment
Please, Sign In to add comment