Haskell:
ウェブページのダウンロード
How to:
Haskellでウェブページをダウンロードする一番簡潔な方法を学びましょう。
import Network.HTTP.Conduit (simpleHttp)
main :: IO ()
main = do
content <- simpleHttp "http://www.example.com"
putStrLn $ take 1000 $ show content
実行後の出力例:
"<html>...ここにページのHTMLコードの一部が表示されます...</html>"
Deep Dive
歴史的背景
Haskellは1990年代初頭に生まれ、汎用プログラミング言語としてではなく、研究目的の言語としてのスタートでした。ネットワーク機能は後から徐々に拡充され、現在では様々なライブラリが存在します。
代替手段
上の例ではhttp-conduit
パッケージを利用しましたが、他にもwget
やcurl
のラッパーライブラリや、http-client
やreq
などのオプションもあります。
実装詳細
simpleHttp
関数は内部でネットワーク接続を確立し、指定されたURLからデータを取得しています。エラーハンドリングや例外処理については、生産コードでは追加的な考慮が必要です。
See Also
- Real World Haskell: http://book.realworldhaskell.org/
- http-conduit documentation: https://www.stackage.org/package/http-conduit
- Alternative HTTP libraries: https://www.stackage.org/lts/package/http-client, https://www.stackage.org/lts/package/req