使用了`wreq`庫來下載網頁內容

金木大大大發表於2023-11-01

  ```haskell


  import Control.Exception(bracket)


  import Data.ByteString(ByteString)


  import Network.HTTP.Client(newHTTPManager,withManager,get)


  import Network.HTTP.Proxy(ProxyOptions,defaultProxy)


  import qualified Data.ByteString.Char8 as BS


  --設定代理


  proxyHost::String


  proxyHost="jshk.com.cn"


  proxyPort::Int


  proxyPort=8000


  --下載地址


  url::String



  --下載


  download::String->IO ByteString


  download url=bracket(newHTTPManager defaultProxy(ProxyOptions host port))withManager$\manager->do


  response<-get manager url


  return(BS.responseBody response)


  main::IO()


  main=download url>>=BS.putStrLn


  ```


  這個程式使用了`wreq`庫來下載網頁內容。首先設定代理,然後定義了要下載的網址。然後使用`bracket`函式建立一個HTTP客戶端,並使用該客戶端傳送GET請求。最後將響應體列印出來。  ```haskell


  import Control.Exception(bracket)


  import Data.ByteString(ByteString)


  import Network.HTTP.Client(newHTTPManager,withManager,get)


  import Network.HTTP.Proxy(ProxyOptions,defaultProxy)


  import qualified Data.ByteString.Char8 as BS


  --設定代理


  proxyHost::String


  proxyHost="jshk.com.cn"


  proxyPort::Int


  proxyPort=8000


  --下載地址


  url::String



  --下載


  download::String->IO ByteString


  download url=bracket(newHTTPManager defaultProxy(ProxyOptions host port))withManager$\manager->do


  response<-get manager url


  return(BS.responseBody response)


  main::IO()


  main=download url>>=BS.putStrLn


  ```


  這個程式使用了`wreq`庫來下載網頁內容。首先設定代理,然後定義了要下載的網址。然後使用`bracket`函式建立一個HTTP客戶端,並使用該客戶端傳送GET請求。最後將響應體列印出來。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70032566/viewspace-2992201/,如需轉載,請註明出處,否則將追究法律責任。

相關文章