Guest User

rutracker pars

a guest
Feb 24th, 2022
723
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.31 KB | None | 0 0
  1. import requests
  2. import urllib.request
  3. import argparse
  4. from urllib.parse import urlparse, urljoin
  5. import os
  6. from os import path
  7. import shutil
  8. import sys
  9. import platform
  10. import subprocess
  11. import json
  12.  
  13. parser = argparse.ArgumentParser()
  14. parser.add_argument("-p", "--path", required=False,
  15.                     help="Путь для сохранения, если не указан, то выбирается тот путь, где лежит скрипт", type=str)
  16. parser.add_argument("-c", "--cookie", required=True,
  17.                     help="Куки.", type=str)
  18. parser.add_argument("-l", "--link", required=False,
  19.                     help="Путь до сайта, не обязательно", type=str)
  20. parser.add_argument("-i", "-index", required=False,
  21.                     help="Начало, с какой цифры качать", type=int)
  22. parser.add_argument("-r", "-rindex", required=False,
  23.                     help="Конец, до которого качать", type=int)
  24. args = parser.parse_args()
  25.  
  26.  
  27. def die(msg):
  28.     sys.stderr.write(msg + '\n')
  29.     sys.exit(1)
  30.  
  31.  
  32. def path():  # функция для указания пути
  33.     if args.path:  # если аргумент есть
  34.         if platform.system().lower() != 'windows':
  35.             if args.path[-1] != '/':  # если последним символом не является /
  36.                 args.path += '/'  # добавить к строке символ /
  37.                 return(args.path)
  38.             else:
  39.                 return(args.path)
  40.         elif platform.system().lower() == 'windows':
  41.             if args.path[-1] != '\\':  # если последним символом не является \
  42.                 args.path += '\\'  # добавить к строке символ \
  43.                 return (args.path)  # возвратить аргумент
  44.             else:  # если все нормально, вернуть аргумент
  45.                 return (args.path)
  46.         # если путь не существует, сказать об этом
  47.         if os.path.exists(args.path) == False:
  48.             die('Путь должен существовать')
  49.     else:  # если аргумента нет, вернуть директорию, в которой находится скрипт
  50.         if platform.system().lower() == 'windows':
  51.             return (os.getcwd() + '\\')
  52.         else:
  53.             return(os.getcwd() + '/')
  54.  
  55.  
  56. def save_torrent(file_url):
  57.     headers = {
  58.     "User-Agent" : "Mozilla/5.0 (X11; Linux x86_64; rv:89.0) Gecko/20100101 Firefox/89.0",
  59.     "Cookie" : args.cookie
  60.     }
  61.     file_name = path() + (file_url.split('=')[-1] + '.torrent')
  62.     r = requests.get(file_url, headers = headers)
  63.     if str(r.text) not in '<center><br><br>Error: attachment data not found</center>':
  64.         open(file_name, 'wb').write(r.content)
  65.         print(file_url + ' was saved to', file_name)
  66.  
  67. if __name__ == '__main__':
  68.     counter = 0
  69.     if not args.rindex or not args.index:
  70.         while True:
  71.             counter += 1
  72.             #print(counter)
  73.             save_torrent('https://rutracker.org/forum/dl.php?t=' + str(counter))
  74.     else:
  75.         for i in range(args.index, args.rindex + 1):
  76.             save_torrent('https://rutracker.org/forum/dl.php?t=' + str(i))
Add Comment
Please, Sign In to add comment