Загрузка всех файлов с URL с расширением фильтра - PullRequest
0 голосов
/ 18 октября 2019

Я хочу загрузить все файлы с FTP или HTTP, используя фильтр расширений. Например, у меня есть один URL, который содержит много файлов MKV, и я хочу установить фильтрацию расширений для загрузки всех файлов MKV с URL или загрузки всех файлов jpg

Я могу использовать open-Uri для этого, но этот метод загружает только один файл и сохраняет его

require 'open-uri'
download = open('https://img.webmd.com/dtmcms/live/webmd/consumer_assets/site_images/article_thumbnails/video/caring_for_your_kitten_video/650x350_caring_for_your_kitten_video.jpg')
IO.copy_stream(download, '650x350_caring_for_your_kitten_video.png')

Ответы [ 2 ]

2 голосов
/ 19 октября 2019

Это ограничение на сайте сервера. Если ваш сервер не разрешает перечисление каталогов (что в большинстве случаев не выполняется HTTP-серверами), вы не можете сделать многое.

Итак, чтобы ответить на ваш вопрос: open-uri не позволит вам перечислять файлы.

Что касается FTP. Вы можете перечислить все файлы в каталоге , как это . Не уверен, если вы в состоянии передать в подстановочные знаки. Если нет, вам придется использовать метод выбора для фильтрации по именам файлов, которые вы хотите.

0 голосов
/ 21 октября 2019

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

    require 'mechanize'
    mechanize = Mechanize.new
    page = mechanize.get("URL")
    page.search('a').each do |link|
    uri = mechanize.resolve(' ' + link).to_s
    if uri.include?(".mkv")
    File.open("url.txt", "a") do |file|
     file.puts uri
        end
      end
    end
    puts "The File has been created!"
    #exec 'idman /d URL'
    #puts "Done!"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...