Search
Write a publication
Pull to refresh

Comments 11

Что, если:

wget --mirror --convert-links --no-parent --no-clobber --execute robots=off --no-check-certificate --accept=nuget --reject=html --recursive --level=inf --domains=nuget.org --span-hosts --follow-tags=a https://www.nuget.org

ну или lftp ну или ещё с полдюжины похожего

Конечно, это все файлы с расширением nuget, как в заголовке заметки. Если есть желание только определённые версии -- это другой вопрос.

Существуют страницы для каждого пакета, но не на каждую такую страницу есть ссылка.

Плюс, цель была - не привлекать внимание санитаров. Если сайт долбить запросами, сайт вам скоро отвечать станет неохотно.

https://www.nuget.org/packages
все тут.

Не привлекать внимания -- не поможет, хотя меня терзают смутные сомнения, что MS режет траффик там.

Самое правильное -- это настроить какой jfrog (ну или что там сейчас стильно-модно-молодёжно) проксей.

https://www.nuget.org/packages?page=1501&sortBy=relevance - попробуйте нажать next. Посчитайте, сколько вы перечислите таким образом.

Кроме того, пакеты можно скрывать. На скрытые пакеты ссылок нет в принципе и в коде соответствующих страниц указаны инструкции поисковикам игнорировать их.

А в рейт-лимиты можно просто в браузере вляпаться, если слишком активно бегать по сайту:

Меня вот что удивляет: разве клиент nuget — не опенсорсное решение? А если да, то почему в его коде не посмотреть, как он пакеты выкачивает или хотя бы ищет?

У клиента нет задачи перечислить все пакеты, кода, который это делает там просто не существует. Он пользуется RegistrationsBaseUrl/3.6.0 для получения метаданных пакетов, указанных как зависимости по идентификатору и версии пакета.

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

Неужели в нём нет параметра типа --list — перечислить все пакеты? Я почему-то думал, что он входит в джентельменский набор менеджера пакетов.

Пакетов сотни тысяч (не считая индивидуальных версий, с ними - миллионы). Какой use case у этой команды был бы? У какого пакетного менеджера она есть?

Pacman -Ss и дальше можно подставлять буквы алфавита a-z

Выдаст все пакеты где есть эта буква

Ну это же все же эксплуатация функции поиска (не предназначенного для перечисления пакетов). При наличии локальной базы всех пакетов и уверенности, что эта база действительно содержит все пакеты оно даже наверно как-то сработает. Если поиск возвращает действительно все результаты.

Но в нугете нет локальной базы. Поиск есть (Web API), но так же есть скрытые пакеты, которые поиском найти нельзя, и у результатов есть ограничение по глубине. Кроме того, в нугете есть пакеты, название которых состоит из одних цифр. В идентификаторах пакетов можно использовать практически любые Unicode символы. Ну и поиск там не по регэкспу. Замучаетесь придумывать поисковые запросы, которые покроют действительно все.

Sign up to leave a comment.

Articles