HXTでスクレイピング
-
付与されたタグ:
- Haskell
ほんとはHaskellでスクレイピングを書きたかったので頑張ってみる。TagSoupは使い方がまだよく理解してないのでHXTで。HXTはStringしか受け付けないのが面倒だな。Data.ByteString.Char でファイルを読み込んでからunpackするのが必要だ。
同じくリンク先にfooが含まれるものの一覧を作成する。
import Text.XML.HXT.Core import Data.List import qualified Data.ByteString.Char8 as BSC main = do html <- BSC.readFile "index.html" let doc = readString [withParseHTML yes, withWarnings no] (BSC.unpack html) links <- runX $ doc //> hasName "a" >>> hasAttrValue "href" (isInfixOf "foo") >>> getAttrValue "href"
mapM_ putStrLn links