首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >管道中的IO操作?

管道中的IO操作?
EN

Stack Overflow用户
提问于 2013-04-16 15:16:08
回答 1查看 161关注 0票数 2

这可能是一个相当晦涩难懂的案例,但请耐心听我说。

我正在编写一个网络爬虫,需要下载网页并将其保存到本地磁盘。同时,作为一个爬虫,它需要找到每个页面上的超链接,并下载这些链接的页面。

现在我正在看this page上给出的第一个示例代码。我正在尝试编写这种类型的管道:

代码语言:javascript
复制
processLink :: Conduit S.ByteString IO S.ByteString

然后我将替换示例代码中的这一行:

代码语言:javascript
复制
responseBody res $$+- sinkFile "foo.txt"

使用这一行:

代码语言:javascript
复制
responseBody res $= processLinks $$+ sinkFile

因此,我要做的是实现一个名为processLink的管道,它处理一个ByteString,从中提取链接,然后将原始ByteString传递给sinkFile,以便保存页面。然后,我可以递归地调用这些链接上的函数来下载这些链接的页面。

然而,由于processLink是一个纯函数,似乎我不能在processLink中做任何IO操作,因此不能做我需要的事情,比如下载那些链接的页面。或者我可以吗?我能做些什么来解决这个问题呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-16 15:32:16

好吧,我想通了.我想我需要的只是liftIO而已。对不起,我对Haskell是个新手。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16030954

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档