相关疑难解决方法(0)

我如何提早做回块?

我正在尝试使用Haskell来搜索网页并将结果编译成一个对象.

如果由于某种原因,我无法从页面中获取所有项目,我想停止尝试处理页面并提前返回.

例如:

scrapePage :: String -> IO ()
scrapePage url = do
  doc <- fromUrl url
  title <- liftM headMay $ runX $ doc >>> css "head.title" >>> getText
  when (isNothing title) (return ())
  date <- liftM headMay $ runX $ doc >>> css "span.dateTime" ! "data-utc"
  when (isNothing date) (return ())
  -- etc
  -- make page object and send it to db
  return ()
Run Code Online (Sandbox Code Playgroud)

问题是when不会停止执行阻止或保持其他部分不被执行.

这样做的正确方法是什么?

monads haskell web-scraping

17
推荐指数
2
解决办法
2432
查看次数

标签 统计

haskell ×1

monads ×1

web-scraping ×1