2017-08-25 3 views
0

以下のヘルプが必要です。ruby​​を使用してhttpの場所からファイルのリスト(最後にアップロードされた日付でソートされた配列)を取得します

私は内のファイルとリモートフォルダを表しHTTPページがあります。私は、フォルダの内容を取得するには、以下をしようとしていたが、それは何も返さない

https://example.com 
|/share 
|-/builds 
|--file1.tar.gz 
|--file2.tar.gz 
|--file3.tar.gz 

を:

#!/usr/bin/env ruby 
result = `curl -s https://example.com/share/builds --list-only | sed -n 's%.*href="\([^.]*\.tar\.gz\)".*%\n\1%; ta; b; :a; s%.*\n%%; p'` 
puts result 

あなたは私を聞かせていただけませんここで見逃されているものを知っていて、あなたがファイルリストを取得するための代替手段を提供できれば素晴らしいだろう。

+1

をhttp/rdoc/Net/HTTP.htmlまたはいくつかの宝石? –

答えて

0

インデックスページのHTMLからリンクを抽出する必要があります。

このような何か試してください:あなたは `curl`代わりのビルドでhttps://ruby-doc.org/stdlib-2.4.1/libdoc/net/のようなライブラリを使用しているのはなぜ

require 'open-uri' 
require 'nokogiri' 

index_html = open('https://example.com/share/builds').read 
index_dom = Nokogiri::HTML.parse index_html 
links = index_dom.css('a').each { |link| 
    puts "#{link['href']} #{link.text}" 
} 
+1

ありがとうございます – Andriy

+0

もう1つの要素を表示するのを手伝ってください。 インデックスページは次のようになります(間隔は保存されます:

 ../ file1.tar 01-Sep-2017 12:00 1.0 KB file1.tar 01-Sep-2017 12:00 1.0 KB 
...... ここからdat + timeを解析するにはどうすればよいですか? – Andriy

+0

私は今、申し訳ありません。これまでに試したことを説明してください。 – mahemoff

関連する問題