此API提供来自网站的缩略图。
<img style="-webkit-user-select: none" src="http://webthumb.bluga.net/easythumb.php?user=00000&url=www.consumerreports.com&hash=sdf9g879d8f7g9sd8fg7s9df&size=medium&cache=30">
用户ID和哈希值已经过编辑,但如果它们是正确的,则此代码会在您的网页上生成一个名为easythumb.jpeg
的小缩略图。
有没有办法获取缩略图并将其存储在我的数据库或AWS中?
或者webthumb是否经过精心设计以防止此类行为?
编辑:
根据以下建议尝试了Nokogiri,这是回归。看起来似乎无法从中获得jpg。我是对的吗?
答案 0 :(得分:2)
理解什么事情做什么很重要。这是一些代码,已经过测试,可以下载图像:
require 'nokogiri'
require 'open-uri'
html = '<img style="-webkit-user-select: none" src="http://webthumb.bluga.net/easythumb.php?user=00000&url=www.consumerreports.com&hash=sdf9g879d8f7g9sd8fg7s9df&size=medium&cache=30">'
doc = Nokogiri::HTML(html)
uri = URI.parse(doc.at('img')['src'])
# => #<URI::HTTP:0x007f8e13258520 URL:http://webthumb.bluga.net/easythumb.php?user=00000&url=www.consumerreports.com&hash=sdf9g879d8f7g9sd8fg7s9df&size=medium&cache=30>
File.basename(uri.path)
# => "easythumb.php"
File.open(File.basename("#{ uri.path }.jpeg"), 'wb') { |fo| fo.write(open(uri).read) }
这就是说,URL无效。打开浏览器页面并粘贴该URL会返回“Bad Hash”,而不是图像。