Haskellでweb上の画像を取得する。
Haskellでweb上の画像を取得します。
ここでは、Googleの画像を取得してきてみます。
import Network.HTTP import Network.Browser (browse, request, request) import Data.Maybe import Network.URI import qualified Data.ByteString.Lazy as L main :: IO () main = do -- まず、pngのバイナリファイルをダウンロードしてくる。 x <- binaryString -- pngファイルをファイルに書き出す。 L.writeFile "google.png" x -- Requestの作成 -- バイナリを取得してくるため、rqBodyの型をL.ByteStringにする rq :: Request L.ByteString rq = Request { rqURI = fromJust $ parseURI "http://www.google.com/intl/en_com/images/srpr/logo1w.png", rqMethod = GET, rqHeaders = [], rqBody = L.empty} -- pngのバイナリの取得 binaryString :: IO L.ByteString binaryString = do (uri, res) <- browse $ request $ rq return $ rspBody res