module Main where import Control.Arrow import Control.Applicative import System.Environment import Text.XML.HXT.Core import Text.HandsomeSoup main :: IO () main = do page <- getPatreonPage patrons <- scrapePatrons page mapM_ putStrLn patrons getPatreonPage :: IO (String) getPatreonPage = do args <- getArgs if length args /= 1 then error "Usage: patronscraper " else return $ head args scrapePatrons :: String -> IO [String] scrapePatrons page = do patrons <- runX $ fromUrl page >>> css ".shareWindow" >>> (deep $ hasName "h1") >>> (deep $ hasName "a") >>> deep isText >>> getText return patrons