{-# Language OverloadedStrings #-} module Main where import Text.HTML.Scalpel.Search import Test.Hspec import Text.HTML.Scalpel import qualified Text.HTML.TagSoup as S main :: IO () main = hspec spec ft :: URL -> IO () ft u = do ts <- fetchTags u writeFile "/tmp/diogene.html" (S.renderTags ts) type MyScraper = Scraper String SearchResult spec :: Spec spec = do describe "ddgScraper" $ do it "scrapes a DuckDuckGo search" $ let url = buildDuckduckgoURL "Caro Elisir" sa = scrapeURL (show url) (duckduckgoScraper :: MyScraper) in fmap (length . unwrapSR) <$> sa `shouldReturn` Just 25 describe "googleScraper" $ do it "scrapes a Google search" $ let url = buildGoogleURL "Osculetur me" sa = scrapeURL (show url) (googleScraper :: MyScraper) in fmap (length . unwrapSR) <$> sa `shouldReturn` Just 9