有沒有辦法從圖片網址中檢索上次修改日期?有沒有辦法從Ruby中的圖像URL檢索最後修改日期?
我可以從瀏覽器中看到上次修改日期,並且我認爲上次修改日期位於HTTP標頭的內部。
非常感謝。
這裏是我的代碼:
image_file = open('http://www.example.com/image1.jpg')
有沒有辦法從圖片網址中檢索上次修改日期?有沒有辦法從Ruby中的圖像URL檢索最後修改日期?
我可以從瀏覽器中看到上次修改日期,並且我認爲上次修改日期位於HTTP標頭的內部。
非常感謝。
這裏是我的代碼:
image_file = open('http://www.example.com/image1.jpg')
require 'open-uri'
require 'prettyprint'
open('http://www.iana.org/_img/2013.1/iana-logo-header.svg') do |f|
pp f.meta
end
運行這一點,你會得到這樣的:
{"server"=>"Apache",
"last-modified"=>"Fri, 04 Jan 2013 01:17:14 GMT",
"content-type"=>"image/svg+xml",
"content-length"=>"32870",
"accept-ranges"=>"bytes",
"date"=>"Wed, 16 Oct 2013 03:59:41 GMT",
"x-varnish"=>"2012021384 2012020567",
"age"=>"70",
"via"=>"1.1 varnish",
"connection"=>"keep-alive"}
運行類似於:
require 'open-uri'
last_modified = open('http://www.iana.org/_img/2013.1/iana-logo-header.svg') do |f|
f.last_modified
end
last_modified # => 2013-01-03 18:17:14 -0700
你就完成了。
OpenURI's open
接受一個塊。在該塊內部,您可以訪問將返回有關當前連接信息的不同方法。
從文檔:
open("http://www.ruby-lang.org/en") {|f|
f.each_line {|line| p line}
p f.base_uri # <URI::HTTP:0x40e6ef2 URL:http://www.ruby-lang.org/en/>
p f.content_type # "text/html"
p f.charset # "iso-8859-1"
p f.content_encoding # []
p f.last_modified # Thu Dec 05 02:45:02 UTC 2002
}
另請參見附加信息的OpenURI::Meta文件,如last_modified
。
沒錯,別再懷疑...不能使用open-uri
雖然。
require 'net/http'
http = Net::HTTP.new('www.example.com', 80)
resp = http.request_get('/image1.jpg')
date = resp['last-modified']
如果要讀取的文件,以及,你可以做一個塊...
http.request_get('/index.html') do |resp|
resp.read_body do |str|
# ...
end
end
require 'mechanize'
agent = Mechanize.new
modified_date = agent.get("http://example.com/image1.jpg").response["last-modified"]
是的,這可從OpenURI獲得。請參閱文檔中的['last_modified'](http://www.ruby-doc.org/stdlib-2.0.0/libdoc/open-uri/rdoc/OpenURI/Meta.html#method-i-last_modified)。 –
不錯,從來沒有注意到。 –