Как скачать торрент файл

Я ищу способ скачать торрент-файл, но я могу заставить его работать.

Я нашел здесь пару похожих вопросов и попробовал решения, но не могу заставить его работать. Вот что у меня есть:

def get_torrent(site):
results = site
url = "https://nyaa.si/user/HorribleSubs?f=0&c=0_0&q=HorribleSubs+%5B720p%5D&p={}"
opener = urllib.request.build_opener()
opener.addheaders = [('User-Agent', 'CERN-LineMode/2.15 libwww/2.17b3')]
urllib.request.install_opener(opener)  # NOTE: global for the process
for line in results:
    name = "[HorribleSubs] " + line + " [720p].mkv"
    urllib.request.urlretrieve(url, name)

Функция получает список новых эпизодов, которые необходимо скачать, вот пример: Isekai Shokudou — 11, Koi to Uso — 11.

Затем я добавляю остальные стили ссылок и пытаюсь загрузить ссылки, но весь приведенный выше код загружает весь html-код сайтов внутри следующих файлов:

[HorribleSubs] Isekai Shokudou - 11 [720p].mkv 

а также

[HorribleSubs] Koi to Uso - 11 [720p].mkv

Поэтому мне нужен способ загрузить фактические файлы .torrent с сайта, указанного в коде.


person Nanoni    schedule 12.09.2017    source источник
comment
URL-адрес, который вы используете, похоже, не является файлом .torrent. Попробуйте с этим, например, и сообщите нам результат, пожалуйста. nyaa.si/download/958473.torrent   -  person maiky_forrester    schedule 12.09.2017
comment
Файл C:\Python36\lib\urllib\request.py, строка 258, в urlretrieve tfp = open(filename, 'wb') OSError: [Errno 22] Неверный аргумент: 'nyaa.si/download/958359.torrent' Процесс завершен с кодом выхода 1   -  person Nanoni    schedule 12.09.2017
comment
ссылки на фактические .torrents случайны, поэтому я не могу сказать приложению, что загружать, вместо этого у меня была идея, щелкнуть ссылку name_of show - ep_num и с этого сайта найти ссылку .torrent (есть только одна на каждом страницу) и загрузите его. но я тоже не знаю как это сделать :/   -  person Nanoni    schedule 12.09.2017
comment
вам действительно нужен скрипт python для этого. ?   -  person Anurag Misra    schedule 12.09.2017
comment
Ну да и нет, этот скрипт помогает мне, поэтому мне не нужно вручную проверять, какие серии и какие эпизоды я скачал, и мне не нужно вручную проверять, выходит ли новый эпизод каждый день. В настоящее время у меня есть 64 серии, чтобы следить, так что да, это требует некоторой работы, чтобы сделать это вручную, также серии идут со случайными перерывами и возвращаются через пару месяцев, поэтому проверка всего этого вручную - это много работы + я пытаюсь изучить python, поэтому какой лучший способ сделать это, чем написать скрипт, который экономит мне много времени и в то же время я изучаю кодирование :)   -  person Nanoni    schedule 12.09.2017


Ответы (3)


Хорошо, теперь загрузка .torrent работает, код ниже:

def get_torrent(site):
    results = site
    url = "https://nyaa.si/download/958359.torrent"
    opener = urllib.request.build_opener()
    opener.addheaders = [('User-Agent', 'CERN-LineMode/2.15 libwww/2.17b3')]
    urllib.request.install_opener(opener)  # NOTE: global for the process
    for line in results:
        name = "[HorribleSubs] " + line + " [720p].torrent"
        urllib.request.urlretrieve(url, name)

Это загружает файл .torrent по ссылке, которая жестко закодирована в URL-адрес, и имя файла, которое он сохраняет как в цикле for. Далее нужно выяснить, как автоматически получать ссылки .torrent внутри цикла for для всех аниме в списке. Проблема здесь в том, что ссылки .torrent находятся на веб-сайте, с которого я их загружаю.

person Nanoni    schedule 12.09.2017
comment
1. Лучше анализировать XML RSS-канал (nyaa.si/?page=rss) 2. Чтобы parsr html Я предпочитаю использовать библиотеку scrapy. Он использует xpath для выбора данных. Возможно, вы предпочитаете другую структуру xpath stackoverflow.com /questions/8692/how-to-use-xpath-in-python - person mmv-ru; 11.04.2018

Для загрузки фильмов вы можете использовать хорошую библиотеку под названием

pyYify

который делает большую часть работы по обработке магнет-ссылки и запуску загрузки для вас и прочему. Вот ссылка на гитхаб для библиотеки. https://github.com/nateshmbhat/pyYify

Он также имеет функцию поиска торрентов для фильмов, а также средства контроля качества и выбора рейтинга, которые вы можете использовать в своем коде.

Search_string для фильма может быть «название фильма, код IMDb, имя актера, имя режиссера». качество = «Все», «720p», «1080p», «3D».

person Natesh bhat    schedule 09.05.2018

Вы можете выполнить эту процедуру для загрузки файла.

  1. Получить содержимое файла с помощью requests.get(url)
  2. Назначьте путь к файлу назначения. Например: destination = NameofFile.torrent'
  3. Откройте и запишите файл open(destination,'wb').write(file.content)
url = "https://nyaa.si/download/958359.torrent"
file = requests.get(url)
destination = '958359.torrent'

open(destination,'wb').write(file.content)

person user2632863    schedule 11.12.2019