Haskell:
下载网页
怎么做:
-- 安装HTTP套件:http-conduit
import Network.HTTP.Simple
-- 定义下载函数
downloadWebPage :: String -> IO L.ByteString
downloadWebPage url = do
request <- parseRequest url
response <- httpLBS request
return $ getResponseBody response
-- 使用下载函数
main :: IO ()
main = do
content <- downloadWebPage "http://example.com"
L.putStr content
示例输出:
<!doctype html>
<html>
<head>
<title>Example Domain</title>
...
</head>
...
</html>
深入探究
下载网页是个老早就有的需求,curl
和wget
是早期常用工具。Haskell 社区为此开发了很多库,像是http-conduit
,还有wreq
,req
等。http-conduit
使用了管道模式,适合处理流数据。执行效率高,但学习曲线可能陡峭些。
参考链接
- HTTP 协议:https://developer.mozilla.org/en-US/docs/Web/HTTP
- http-conduit 套件:https://www.stackage.org/package/http-conduit