2014-11-01 2 views
0

이 API는 웹 사이트에서 미리보기 이미지를 제공합니다. 이 URL에서 jpg를 얻는 방법?

<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라는 페이지에 작은 썸네일을 초래할 것입니다.

미리보기 이미지를 가져 와서 내 DB 또는 AWS에 저장할 수있는 방법이 있습니까?

그런 동작을 방지하기 위해 신중하게 설계 되었습니까?

편집 :

아래의 제안에 따라 노코 기리을 시도하고, 여기에 반환됩니다. 이것으로 jpg를 얻을 수있는 방법이없는 것처럼 보입니다. 내가 맞습니까?

+0

중복 될 수 있습니까? http://stackoverflow.com/questions/1074309/how-do-i-download-a-picture-using-ruby –

+0

nah - 그 질문은 URL에 jpg가 있습니다. – dwilbank

+0

Ahh. 이것 좀 봐 : http://stackoverflow.com/questions/7926675/save-all-image-files-from-a-website - 가장 큰 대답은 Nokogiri를 사용한다는 것인데, 나는 또한 긁기/다운로드에 사용했다. –

답변

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에 붙여 넣으면 이미지가 아니라 "해쉬"가 반환됩니다.