我是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
但是它将相同的网页与其他确认值放在一起。 我在这里失踪了什么?