dom-selector: DOM traversal by CSS selectors for xml-conduit package

[ bsd3, library, web ] [ Propose Tags ] [ Report a vulnerability ]

CSS selector support for xml-conduit/html-conduit. This package supports compile-time checking of CSS selectors using quasiquotes. All DOM traversals are purely functional.

  • Quick start

-- The following pragmas should be put first (Haddock does not accept a pragma notation.)
-- LANGUAGE OverloadedStrings, QuasiQuotes

module Main (main) where

import Text.XML.Cursor (fromDocument)
import Text.HTML.DOM (parseLBS)
import qualified Data.Text.Lazy.IO as TI (putStrLn)

import Control.Monad (mapM_)

import Text.XML.Scraping (innerHtml)
import Text.XML.Selector.TH

import Network.HTTP.Conduit
import Data.Conduit.Binary

main :: IO ()
main = do
   root <- fmap (fromDocument . parseLBS) $ simpleHttp "https://news.google.com/"
   let cs = queryT [jq| h2 span.titletext |] root
   mapM_ (TI.putStrLn . innerHtml) cs

You can use some elementary CSS selectors for traversing a DOM tree.

  • Other examples

https://github.com/nebuta/dom-selector/tree/master/examples

Changes:

Ver 0.2.1: Inappropriate Safe Haskell pragma was removed.

Ver 0.2: All scraping functions in Text.XML.Scraping return lazy text now. They are implemented with a type class.

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1.0.0, 0.2.0.0, 0.2.0.1
Dependencies base (>=4.0 && <5), blaze-html (>=0.5), containers (>=0.4), html-conduit (>=0.1), parsec (>=3.1), QuickCheck (>=2.4), template-haskell (>=2.5), text (>=0.11), th-lift (>=0.5), xml-conduit [details]
License BSD-3-Clause
Copyright Copyright 2012-2013 by Nebuta Lab
Author Nebuta Lab
Maintainer nebuta.office@gmail.com
Category Web
Home page https://github.com/nebuta/
Source repo head: git clone https://github.com/nebuta/dom-selector
Uploaded by nebuta at 2013-06-17T00:07:38Z
Distributions
Reverse Dependencies 2 direct, 0 indirect [details]
Downloads 3214 total (22 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]