Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Скачивание файла\Парс строки из файла в переменную

Ответить
Настройки темы
CMD/BAT - [решено] Скачивание файла\Парс строки из файла в переменную

Аватара для a1ek9

Пользователь


Сообщения: 57
Благодарности: 1

Профиль | Отправить PM | Цитировать


Изменения
Автор: a1ek9
Дата: 29-02-2024
Добрый день! Прошу помощи. Третий день уже гуляю по рунету, перерыл кучу скриптов, но довести до конца так и не смог xD. Воощем сама задача состоит в скачивании файла с mediafire.*** (не знаю можно нет тут линки постить). Вообщем пробовал curl и wget (wget2 только не пробовал).
Код: Выделить весь код
curl -O "https://www.mediafire.com/file/h3e51rwcr4jrh8m/iconapp.dll/file"
качает file без расширения, ну понятно что это страничка загрузки файла, в этом файле есть линк на скачку файла, которую надо вытащить (так понял что по номеру строки лучше не делать парс, так как может измениться)
Код: Выделить весь код
<a class="input popsok"
           aria-label="Download file"
           href="https://download1586.mediafire.com/4jsacics6yigFwpWnXlh3fWPXGGxxiPcGZeHB8a4UU6cCuZ7slbzY_O2198VfoPuO3eGNlHXjSvC7gMEMXWLo1094J-ts15YX_u_rCCBGOB2ueOyXXMxkGVPEsW9F3K6sP0sDLjRtRfE80k2lrmOIVMIPr04guI1F7x90fXUHSlk4Iw/h3e51rwcr4jrh8m/iconapp.dll"           id="downloadButton"
           rel="nofollow">
                Download (9.33MB)
        </a>
Подскажите пожалуйста как вытащить строку на загрузку по прямой ссылке? Прям вот очень хочется глянуть) Парс нужен от "href="https://d" и до ". Ну или может есть какой та другой вариант? Буду очень признателен :-)

Отправлено: 12:18, 29-02-2024

 

Deadooshka


Сообщения: 2499
Благодарности: 682

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
wget -qO- "https://www.mediafire.com/file/h3e51rwcr4jrh8m/iconapp.dll/file" | grep -Pozi 'aria-label="Download\sfile"\s*href="\K[^"]+' | wget -qi-
так скачивает например.

Отправлено: 13:51, 29-02-2024 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


Аватара для a1ek9

Пользователь


Сообщения: 57
Благодарности: 1

Профиль | Отправить PM | Цитировать


Цитата Sham:
так скачивает например. »
У меня вообще сразу все закрывается. А
Цитата a1ek9:
Подскажите пожалуйста как вытащить строку »
с этим не подскажите? тогда и curl был бы рабочим вариантом и без лишних файлов.

Отправлено: 14:02, 29-02-2024 | #3


Deadooshka


Сообщения: 2499
Благодарности: 682

Профиль | Отправить PM | Цитировать


уберите "| wget..." и выведет ссылку

Отправлено: 14:07, 29-02-2024 | #4


Аватара для a1ek9

Пользователь


Сообщения: 57
Благодарности: 1

Профиль | Отправить PM | Цитировать


Цитата Sham:
уберите "| wget..." и выведет ссылку »
Так же просто закрывается.
Цитата Sham:
grep »
У меня windows если что) Нашел скачал ругается на отсутствие 4х файлов (pcre3.dll, regex2.dll, libintl3.dll, libiconv2.dll) Буду искать сейчас.
upd. Зависимости все нашел, теперь вот что пишет grep: The -P and -z options cannot be combined, и файл создает .wget-hsts.

Последний раз редактировалось a1ek9, 29-02-2024 в 14:32.


Отправлено: 14:16, 29-02-2024 | #5


Deadooshka


Сообщения: 2499
Благодарности: 682

Профиль | Отправить PM | Цитировать


если нужен PS, то там wget это invoke-webrequest, который уже сам парсит html
Код: Выделить весь код
(wget "https://www.mediafire.com/file/h3e51rwcr4jrh8m/iconapp.dll/file").links | ? aria-label -eq 'download file' | select -exp href
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:41, 29-02-2024 | #6


Аватара для a1ek9

Пользователь


Сообщения: 57
Благодарности: 1

Профиль | Отправить PM | Цитировать


Цитата Sham:
если нужен PS »
Плохой опыт с ним, надо cmd либо сmd с какими нибудь консольными утилитами (не грамозкими). Не могу понять почему ваш первый вариант не работает, а у вас срабатывает(

Отправлено: 14:47, 29-02-2024 | #7


Deadooshka


Сообщения: 2499
Благодарности: 682

Профиль | Отправить PM | Цитировать


рабочий grep из MSYS2. grep из git тоже работает, то требует юникод-локаль (set LC_ALL=en_US.utf8).
"\K" (отбрасывает строку слева) требует флага -P (perl - выражения). Есть другие флаги (E и G), может и там что-то есть.

Отправлено: 16:07, 29-02-2024 | #8


Аватара для a1ek9

Пользователь


Сообщения: 57
Благодарности: 1

Профиль | Отправить PM | Цитировать


Цитата Sham:
(wget "https://www.mediafire.com/file/h3e51rwcr4jrh8m/iconapp.dll/file").links | ? aria-label -eq 'download file' | select -exp href »
в cmd сделал, ответ верный, то что надо. Как в переменную это все завернуть? Подскажи пожалуйста!
Код: Выделить весь код
powershell -command "(wget "https://www.mediafire.com/file/h3e51rwcr4jrh8m/iconapp.dll/file").links | ? aria-label -eq 'download file' | select -exp href"
долго правда, но на первое время сойдет, парс с файла все равно допилю когда время будет.

Отправлено: 17:04, 29-02-2024 | #9


Deadooshka


Сообщения: 2499
Благодарности: 682

Профиль | Отправить PM | Цитировать


в cmd обычно через for вывод в переменную пишут
Код: Выделить весь код
@for /f "tokens=* usebackq" %%f in (`powershell ...`) do @set var=%%f
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:10, 29-02-2024 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Скачивание файла\Парс строки из файла в переменную

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - Скачивание файла hosts с помощью bat-файла и его замена. Polyarnik Скриптовые языки администрирования Windows 1 16-12-2021 10:07
CMD/BAT - [решено] Увеличение значения имени переменной или считывание строки файла в переменную VokaMut Скриптовые языки администрирования Windows 12 26-11-2012 15:54
CMD/BAT - [решено] Имя файла из строки копируемого файла. Seryoga204 Скриптовые языки администрирования Windows 20 16-03-2011 21:15
CMD/BAT - [решено] Чтение строки из файла в переменную Николя Скриптовые языки администрирования Windows 42 17-01-2010 19:42




 
Переход