Skip to content

Instantly share code, notes, and snippets.

@sebadoom
Created April 26, 2017 05:00
Show Gist options
  • Save sebadoom/2672dac6aecf3fe1bf12b8c4062b35ae to your computer and use it in GitHub Desktop.
Save sebadoom/2672dac6aecf3fe1bf12b8c4062b35ae to your computer and use it in GitHub Desktop.
Gather forms using wreq and html-conduit
{-# LANGUAGE OverloadedStrings #-}
module Main where
import Network.Wreq
import qualified Text.HTML.DOM as H
import Text.XML
import Text.XML.Cursor
import Control.Lens hiding (element)
import Data.Aeson.Lens
import Text.Blaze.Renderer.Pretty (renderMarkup)
import Text.Blaze (toMarkup)
import Control.Monad
main :: IO ()
main = do
r <- get "http://www.google.com"
let html = H.parseLBS $ r ^. responseBody
rootCursor = fromDocument html
filtered = map node $ rootCursor $.// (element "form")
forM_ filtered $ \tree -> do
putStrLn $ renderMarkup $ toMarkup tree
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment