Показать полную графическую версию : [решено] Парс ссылки для загрузки файла
Добрый день! Не подскажите, почему парсит ссылку с портабл версией а не с инсталером?
@echo off
@for /f "tokens=* usebackq" %%f in (`powershell -command "(wget "https://librewolf.net/installation/windows/").links | ? 'class' -eq 'jsx-3135004230 button text-gray focus:ring primary ' | select -exp href"`) do @set var=%%f
echo %var%
pause
Пробовал по разному, захват происходит либо второй ссылки, либо вовсе четвёртую(
Вот эту нужно поймать:
href="https://gitlab.com/api/v4/projects/44042130/packages/generic/librewolf/129.0.2-1/librewolf-129.0.2-1-windows-x86_64-setup.exe"
DJ Mogarych
26-08-2024, 14:44
Powershell (wget не нужен)
((iwr https://librewolf.net/installation/windows/).ParsedHtml.body.getElementsByClassName('jsx-3135004230 button text-gray focus:ring primary ') |? ie8_href -match 'setup.exe').ie8_href
Powershell (wget не нужен) »
Что-то новенькое.. благодарочка! :oszone:
DJ Mogarych
02-09-2024, 10:00
Добрый вечер! Подскажи пожалуйста, почему не выходит сделать тоже самое по твоему шаблону из этой http://forum.oszone.net/thread-355638.htmlтемы? https://vivaldi.com/ru/download/?platform=windows только вот с этого сайта (64-bit windows), я уже всяко как можно пытался, мунуалы читал у майков, парс происходит а вот ссылку не видит все равно, они даже код совсем недавно изменили. Стало еще проще в плане парса ссылки для загрузки, но увы.. Хочется понять вообщем за что и как цепляться( А в интернете нету почти шаблонов по этому поводу, чтобы как то на примерах научится.
Найти нужные элементы помогает консоль браузера (F12) и поэтапный поиск нужного элемента по выдаче iwr https://vivaldi.com/ru/download/?platform=windows
((iwr https://vivaldi.com/ru/download/?platform=windows).Links |
? {$_.'data-cpu' -match '64bit' -and $_.'data-os' -eq 'windows'}).href
по выдаче iwr https://vivaldi.com/ru/download/?platform=windows »
Благодарю вас! Пойду смотреть как и что)
DJ Mogarych, Добрый день! У меня с вин-рар проблемы, окажите помощь пожалуйста) по вашим шаблонам получилось несколько нужных мне программ сделать. А вот вин-рар не поддается. Пробовал с офф (https://www.rarlab.com/) сайта, там на нескольких страничках можно поймать линки, русской версии ессно. И пробовал с русской (https://www.win-rar.com/start.html?&L=4) версией сайта. Тоже ничего не вышло, во втором варианте вообще левые линки ловит. Можете помочь? В обоих вариантах пробовал так же поймать по *ru.exe тоже не удалось(
не удалось »
Так?
-join ("https://www.rarlab.com", ((iwr https://www.rarlab.com/).Links |? {$_ -match 'ru.exe\b'}).href)
Так? »
благодарю вас! -join ("https://www.rarlab.com", »
только не понял вот это что? я код взял от iwr.. все работает :)
только не понял вот это что? »
Склейка для получения полной ссылки:
https://www.rarlab.com/rar/winrar-x64-701ru.exe
код взял от iwr.. все работает »
И, что выводит?
Это?
/rar/winrar-x64-701ru.exe
Это? »
да, мне этого достаточно :)
Не подскажите еще пример, как в такой ситуации быть, когда парситься по поиску второй индекс а не первый? Вот он ловит портабл версию, хотя выше указан установочник? И такое встречаю не в первый раз( Получается, во всех случаях последний линк забирает, обычно ведь береться первый)
((iwr https://www.hibitsoft.ir/Uninstaller.html).Links | ? {$_.'class' -match 'btn btnGreen' -and $_.'title' -eq 'Download latest version'}).href"`)
<a href="HiBitUninstaller/HiBitUninstaller-setup-3.2.40.exe" class="btn btnGreen" title="Download latest version"> Installable version </a>
<a href="HiBitUninstaller/HiBitUninstaller-Portable-3.2.40.zip" class="btn btnGreen" title="Download latest version"> Portable version </a>
upd. все сделал, получилось)
Попробуйте фильтровать ещё и по .exe, например:
((iwr https://www.hibitsoft.ir/Uninstaller.html).Links | ? {$_.'class' -match 'btn btnGreen' -and $_.'title' -eq 'Download latest version' -and $_ -match '.exe\b'}).href
Попробуйте фильтровать ещё и по .exe, например »
Не подскажите еще на примере гитхаб, как с раздела релизы парсить самые новые версии? Ну то есть первый линк.
TDesktop-x64 (https://github.com/TDesktop-x64/tdesktop/releases) К примеру этот файл 64Gram-setup-x64.1.1.45.exe (тот что нужен мне)
ну и 64Gram_1.1.45_mac.dmg просто для примера (либо любой другой на ваше усмотрение) По .exe отлавливать я думаю не вариант, на некоторых страничках и тьма тьмущая, только если имя файла до версии программы.. но у меня не получилось, ребята что делились своими решениями, на этом и других форумах не помогает. Со вчера с вечера пытаюсь что-то придумать)
но у меня не получилось, ребята что делились своими решениями, на этом и других форумах не помогает. Со вчера с вечера пытаюсь что-то придумать) »
А, что предлагали?
Может, что-нибудь типа такого подойдёт?
$assets = (iwr https://api.github.com/repos/TDesktop-x64/tdesktop/releases| ConvertFrom-Json).assets | Where-Object name -like "*.exe"; $downloadurl = $assets.browser_download_url; $downloadurl[0]
Может, что-нибудь типа такого подойдёт? »
Первый раз такое вижу)) благодарю вас! Это универсальное прям решение :oszone:
Может, что-нибудь типа такого подойдёт? »
Можно еще разочек вас попросить помочь) Если появляются пред-релиз версии он соответственно парсит их. Нельзя например отправить гет запрос на https://github.com/TDesktop-x64/tdesktop/releases/latest и спарсить ссылку с заголовков? вроде в параметре location должна быть ссылка-переадресации? а потом уже спарсить ссылку на сам файл? Если через powershell нельзя то для меня вариант wget скачать и положить рядом с скриптом. Может, что-нибудь типа такого подойдёт? »
ну а после обработать уже вашим кодом?
Если появляются пред-релиз версии он соответственно парсит их. »
Ну так, фильтруйте по releases, в чём проблема?
Вы можете привести ссылку на пред-релиз?
Вы можете привести ссылку на пред-релиз? »
НУ вот например https://github.com/tnodir/fort/releases
Отфильтровать я не знаю как. Слово тест стоит в середине файла, не туда не сюда(
видимо проблемы все таки есть с провайдером. С третьего раза переадресировал! ... У меня с ме*афона раздача, домашнего интернета нету. А мег*фон банит даже выпрямленные ссылки на майл-облако, почему? я не знаю.. »
Не улавливаю связь между сценарием, получением ссылки, пред-релизом и загрузкой.
Отфильтровать я не знаю как. Слово тест стоит в середине файла, не туда не сюда( »
Например:
$assets = (iwr https://api.github.com/repos/tnodir/fort/releases| ConvertFrom-Json).assets| Where-Object {$_.name -like "*.exe" -and $_.name -notlike "*test*"}; $downloadurls = $assets.browser_download_url; $downloadurls[0]
Например: »
Благодарю вас за подсказку.
$assets = (iwr https://api.github.com/repos/tnodir/fort/releases| ConvertFrom-Json).assets| Where-Object {$_.name -like "*.exe" -and $_.name -notlike "*test*"}; $downloadurls = $assets.browser_download_url; $downloadurls[0] »
Этот код не отработал. Немного переписал ваш первый вариант
(iwr https://api.github.com/repos/tnodir/fort/releases| ConvertFrom-Json).assets | Where-Object name -notlike "*test*" | Where-Object name -like "*x86_64.exe"; $downloadurl = $assets.browser_download_url; $downloadurl[0]
-notlike »
Вот этот параметр искал по интернету, сайтов 20 облазил перечитал, не смог найти. Искал как в целом работать с фильтрами.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.