Как скачать файлы по списку в Python

satfan

Пользователь
Пользователь
Апр 21, 2020
98
6
8
У меня на Win7 --- Python38-32 и Python27
++++++++++++++++++++++++++++++++++++++++++++++++
1. этап работы скрипта:
-----------------------
Скрипт должен отработать следующее:
Загрузить все самообновлямые плейлисты m3u из списка в файле --- link1.txt
Сколько ссылок - столько скачает плейлистов m3u
Загрузить все в папку скрипта: C:\Users\Александр\Desktop\Скачать m3u
Ссылок может быть много. Не более 50.
Задача скрипта:
Построчно скачать все файлы из link1.txt ---- своё_название.m3u --- в каталог скрипта.
C:\Users\Александр\Desktop\Скачать m3u
-------------------------------------------------
Название скрипта: download_m3u.py
-------------------------------------------------
Все скаченные файлы со своим названием, с расширением .m3u должны быть загружены в эту же директорию.
C:\Users\Александр\Desktop\Скачать m3u
===================================
Пробовал так:
Python:
# -*- coding: utf-8 -*-
import wget
    wget -P link1.txt
=============================
Не получается
 

Вложения

  • link1.txt
    93 байт · Просмотры: 5
Последнее редактирование модератором:

Student

throw exception
Команда форума
Администратор
Апр 2, 2020
195
103
43
Москва
Сперва нужно установить библиотеку requests. Подробнее ознакомиться с ней можно в этой статье: https://python-scripts.com/requests
Код:
pip install requests

Потом запускаем скрипт. Главное, чтобы ваш link1.txt был в той же папке что и download_m3u.py
Python:
import requests


if __name__ == "__main__":
    with open('link1.txt') as playlist:
        # Читаем каждую строку
        for line in playlist.readlines():
            url = line.strip()

            # Открываем плейлист
            content = requests.get(url).content
            # Получаем название файла из URL
            filename = url.split('/')[-1].lower().replace('.m3u', '')
            # Создаем новый файл
            new_playlist = open('%s.m3u' % filename, 'wb')
            new_playlist.write(content)
            new_playlist.close()
 
Последнее редактирование:
  • Мне нравится
Реакции: satfan

satfan

Пользователь
Пользователь
Апр 21, 2020
98
6
8
Спасибо огромное.
Ставлю через cmd: C:\Python38-32\python.exe -m pip install requests
Поставилось.
Запускаю скрипт, (Thonny) получаю:
Python 3.7.7 (bundled)
>>> %Run download_m3u.py
Traceback (most recent call last):
File "C:\Users\Александр\Desktop\Скачать m3u\download_m3u.py", line 2, in <module>
import requests
ModuleNotFoundError: No module named 'requests'
 

satfan

Пользователь
Пользователь
Апр 21, 2020
98
6
8
Всё ОК через --- IDLE (Python 3.8 32-bit)
Редактор Thonny --- через него не работает.
Ещё раз спасибо.
Если Вы смогли бы мне помочь с этим скриптом до конца.
Я только начал учить Python.
===================================================
2. этап работы скрипта:
-----------------------
Скрипт должен отработать следующее:
Из файла -- channels.txt брать построчно название канала.
Запускать поиск этого канала во всех скаченных плейлистах m3u
Если канал найден то он должен быть сохранён во вновь созданном файле: plist.m3u
Пример: Нашли канал из файла --- channels.txt --- Телепутешествия HD
Скрипт должен сохранить в -- plist.m3u --- 2 строки так:
#EXTINF:-1,Телепутешествия HD

Поиск прошёл по плейлисту: onelist.m3u
Далее скрипт ищет в следушем скаченном файле m3u
Если нашёл, то запись продолжает в -- plist.m3u --- ниже уже записанного.
И так пробегаем по всем скаченным плейлистам m3u
--------------------------------------------------
Закончили поиск этого канала берём строку следующий канал. Из файла -- channels.txt
Так проходим поиск всех каналов поочерёдно.
 

Вложения

  • channels.txt
    669 байт · Просмотры: 2
Последнее редактирование:
  • Мне нравится
Реакции: Student

Форум IT Специалистов