用Ruby下载一个网页上的所有图片

require 'net/http'
include Net

#这里是我们内网的代理服务器信息
proxy_addr = '192.168.121.241'
proxy_port = 808

#在网页源文件里搜索图片信息的正则表达式
pattern = %r{<img src/s?=/s?"([a-zA-Z0-9/._]+)"}

begin
 proxy_class = HTTP::Proxy(proxy_addr,proxy_port)
 
 proxy_class.start('www.csdn.net') {|http|
  list = Array.new
  http.get('/') do |str|
   if str =~ pattern then
    print("Get img at " + $1 + "/n")
    list.push("/" + $1)
   end   
  end
  list.each do |line|
   temp = line.split("/")
   print("Getting img:" + temp[temp.length-1])
   http.get(line) do |str|
    img_file = File.new("img/" + line.split("/")[2],"wb")
    img_file.write str
    img_file.close
   end
  end
 }
rescue Errno::EINVAL
 p "Can't open connection.",$!
end

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值