论坛首页 编程语言技术论坛

淘宝网防盗链图片下载源码 -- 勿拍

浏览 15890 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (14) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-06-02  
淘宝上面的图片,大多有防盗链,简单伪造一个Referer,即可实现批量下载,技术含量不高哈,只是抱着分享的心态发下此文。

# == Synopsis
#
# Taobao tool all in one.
#
# == Author
# fujun
# 2011.06.01
#
# == Copyright
# Copyright (c) 2010 www.esoMei.cc Inc.
# All rights reserved.

STDOUT.sync = true; STDOUT.flush
STDERR.sync = true; STDERR.flush

require 'open-uri'

module Taobao
  class Tool
    def self.get(url)
      headers = {"Referer" => "http://mm.taobao.com/"}

      open(url, headers) do |fin|
        size = fin.size
        open("/var/tmp/#{url.split('/').last}", "wb") do |fout|
          while buf = fin.read(1024) do
            fout.write buf
            STDOUT.flush
          end
        end

        puts "[#{Time.now().to_s(:db)}] [OK] :url => #{url}, :size => #{size / 1024}KB."
      end
    end
  end
end



使用方法:
单张图片:Taobao::Tool.get('http://img04.taobaocdn.com/sns_album/i4/T11MKbXn4vXXb1upjX.jpg')
多张图片:
arr = ['url1', 'url2'...]
arr.map { |url| Taobao::Tool.get(url) }


   发表时间:2011-06-02  
如果tb做Ip限制的话就不行了
0 请登录后投票
   发表时间:2011-06-02  
genggeng 写道
如果tb做Ip限制的话就不行了


事实上,他不敢做,也没法做,网站访问量太大了。像学生公寓这种成百上千号人共用一个公网IP的。他一做限制,那这些人就死了。

另外,他做了IP限制也没有关系,可以启用代理库。
0 请登录后投票
   发表时间:2011-06-03  
open-uri
不支持ssl连接,不晓得如何解决。
0 请登录后投票
   发表时间:2011-06-07  
随便弄个什么加密的字符串跟在请求里,你这个就歇了。

http://wiki.nginx.org/HttpAccessKeyModule
0 请登录后投票
   发表时间:2011-06-07  
poppk 写道
随便弄个什么加密的字符串跟在请求里,你这个就歇了。

http://wiki.nginx.org/HttpAccessKeyModule

不太现实。这种静态类的资源放在cdn上了,在url里面不会加?字符串的,否则会穿透cdn回源。
0 请登录后投票
   发表时间:2011-06-07  
写的挺好的
0 请登录后投票
   发表时间:2011-06-09  
防盗链, 是为了防止cdn付出过高的流量成本。   弄个程序, 你不是大规模抓取, 抓的到几个呀。
0 请登录后投票
   发表时间:2011-06-09  
sdh5724 写道
防盗链, 是为了防止cdn付出过高的流量成本。   弄个程序, 你不是大规模抓取, 抓的到几个呀。


mm.taobao.com的图片有80万。粗略估计了下是100G。要下个一周左右
0 请登录后投票
   发表时间:2011-06-10  
zfj.rails 写道
sdh5724 写道
防盗链, 是为了防止cdn付出过高的流量成本。   弄个程序, 你不是大规模抓取, 抓的到几个呀。


mm.taobao.com的图片有80万。粗略估计了下是100G。要下个一周左右



CDN 是按峰值计费的多。
0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics