我通過得到一個IO字符串:更改功能支持IO字符串,而不是字符串
import Data.Char
import Network.HTTP
import Text.HTML.TagSoup
openURL :: String -> IO String
openURL x = getResponseBody =<< simpleHTTP (getRequest x)
crawlType :: String -> IO String
crawlType pkm = do
src <- openURL url
return . fromBody $ parseTags src
where
fromBody = unwords . drop 6 . take 7 . words . innerText . dropWhile (~/= "<p>")
url = "http://pokemon.wikia.com/wiki/" ++ pkm
,我想通過解析它的數據:
getType :: String -> (String, String)
getType pkmType = (dropWhile (== '/') $ fst b, dropWhile (== '/') $ snd b)
where b = break (== '/') pkmType
但像你看到的,getType
沒有按不支持IO字符串。
我是IO新手,那麼如何讓它工作? 我也tryed給IO字符串該功能時,理解錯誤,但它太複雜,我到現在:/
這個答案太棒了。你幫了我很多。謝謝! –