ruby中的HTTPS(连接到https://docs.google.com/)

时间:2015-08-02 04:39:38

标签: ruby

我是Ruby的新世界,如果我说一些愚蠢的事,那就很抱歉。

我正在尝试使用 https://docs.google.com/ 自动下载网站成员共享的一些视频,而我正在使用Ruby来执行此操作。

每个视频的链接格式如下:

  https://docs.google.com/uc?export=download&confirm=no_antivirus&id=XXXXXXXXXXXXXXXXXXXXXXXX

我注意到“无论如何下载”按钮会重定向到以下链接:

  https://docs.google.com/uc?export=download&confirm=**FspT**&id=XXXXXXXXXXXXXXXXXXXXXXXX

所以,我注意到确认获取参数值会发生变化。点击该按钮后,我们就会有下载链接。

我尝试使用以下代码执行此操作:

#GoogleDocs
def get_down_link_googledocs(url)

    #Getting the download webpage using https
    uri = URI(url)
    http = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl = true
    http.verify_mode = OpenSSL::SSL::VERIFY_PEER
    data = http.get(uri.request_uri)
    body = data.body

    #Getting confirm value 
    confirm_regx = /confirm=[a-zA-Z0-9_-]*/
    confirm = body.scan(confirm_regx)

    #if the link isn't correct 
    if confirm == nil
        return nil
    end

    #redirection link 
    confirm = String.new(confirm[0])
    url = url.gsub("https://docs.google.com", "")

    if url.include? "confirm=no_antivirus"
        request_uri = url.gsub("confirm=no_antivirus",confirm)
    else
        request_uri = url + "&" + confirm
    end

    request = Net::HTTP::Get.new(request_uri)
    data = http.request(request)
    puts data.body  
end 

但是它将相同的网页与其他确认值放在一起。 我在这里失踪了什么?

0 个答案:

没有答案