打印

用ruby下载图片

用ruby下载图片

只需三行代码,就可以通过http下载漂亮的图片!
复制内容到剪贴板
代码:
require "open-uri"
data=open("http://bbs.railschina.com/images/default/logo.gif"){|f|f.read}
open("logo.gif","wb"){|f|f.write(data)}
axgle说明:1.open方法如果要把uri作为文件打开,需要require "open-uri"这个库文件。
2.因为logo.gif是图片,属于二进制数据(binary),所以open("logo.gif","wb")里应该是“wb”(write binary),不能是"w"(如果你搞不清楚什么时候该wb,什么时候该w,那么统一填写wb就可以了,反正计算机最喜欢二进制).
如果谁的网站上有1000个图片,并且是img1,img2这样命名的,那么你可以用一个循环语句,把他们都下载回来,嘿嘿!

[ 本帖最后由 axgle 于 2007-1-4 12:08 编辑 ]

TOP

准时来上课

require "open-uri"
data=open("http://bbs.railschina.com/images/default/logo.gif"){|f|f.read}
open("logo.gif","wb"){|f|f.write(data)}

open() 里的地址可以用其它的替代吧,嗯,,,,,,,请举例说一下怎么下载批量的呢? 我知道有|f|,可是我看你写的地址好像是下载一个图片吧......
那个open()是作为什么返回给data的呢?
还有"f"是作为文件名还是作为什么迭代值哟?
唉!!!!越说就越糊涂了.嘿嘿

TOP

是的,open() 里的地址可以用其它的替代.
"f"是文件对象。
open(){}读取的是图片的内容,一堆只有计算机才认识的数据,然后传递给了data。

批量下载:
复制内容到剪贴板
代码:
require "open-uri"
for i in 1..10

uri="http://bbs.railschina.com/images/default/logo" +i.to_s +".gif"
data=open(uri){|f|f.read}
open("logo" + i.to_s + ".gif","wb"){|f|f.write(data)}

end
注意:bbs.railschina.com得有logo1.gif,logo2.gif...logo10.gif十张图片才行,这里只是演示。

[ 本帖最后由 axgle 于 2007-1-5 08:08 编辑 ]

TOP

准时来上课

require "open-uri"
for i in 1..10

uri="http://bbs.railschina.com/images/default/logo" +i.to_s +".gif"
data=open(uri){|f|f.read}
open("logo" + i.to_s + ".gif","wb"){|f|f.write(data)}

end
强啊~~~我明白了.

TOP