问题标签 [haskell-tagsoup]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
6 回答
3990 浏览

xml - 使用 Haskell,我如何处理大量的 XML?

我一直在探索Stack Overflow 数据转储,到目前为止,我一直在利用友好的 XML 和正则表达式“解析”。我尝试使用各种 Haskell XML 库来查找特定用户按文档顺序发布的第一篇文章都遇到了令人讨厌的颠簸。

标签汤

hxt

xml

我哪里做错了?使用 Haskell 处理大量 XML 文档的正确方法是什么?

0 投票
2 回答
423 浏览

xml - 处理(太多)许多 XML 文件(使用 TagSoup)

我有一个包含大约 4500 个 XML (HTML5) 文件的目录,我想为它们的数据创建一个“清单”(基本上是titlebase/@href)。

为此,我一直在使用一个函数来收集所有相关的文件路径,用 readFile 打开它们,将它们发送到基于 tagoup 的解析器中,然后输出/格式化结果列表。

这适用于文件的子集,但最终会遇到openFile: resource exhausted (Too many open files)错误。在做了一些阅读之后,这并不奇怪:我正在使用mapM parseMetaDataFile files它立即打开所有手柄。

我不知道如何解决这个问题。我尝试阅读一些有关 Iteratee 的信息;我可以轻松地将其与 Tagsoup 挂钩吗?严格的 IO,无论如何我使用它的方式(呵呵),即使文件不是很大(平均 28 KB)也冻结了我的计算机。

任何指针将不胜感激。我意识到创建一个大列表的方法也可能会失败,但是 4.5k 元素并没有那么长......而且,可能到处都有String越来越少的元素。ByteString

这是一些代码。我为天真道歉:

0 投票
1 回答
515 浏览

http - 从维基百科下载 pdf 文件

维基百科在每篇文章上都提供了一个链接(打印/导出左侧),以将文章下载为 pdf。我写了一个小 Haskell 脚本,它首先获取 Wikipedia 链接并输出渲染链接。当我将渲染 url 作为输入时,我得到了空标签,但浏览器中的相同 url 提供了下载链接。

有人可以告诉我如何解决这个问题吗?ideone上的格式化代码。

0 投票
1 回答
329 浏览

haskell - Haskell 中 IO 操作的重复

我正在尝试重写一个小程序,该程序从一个或多个网页中抓取信息,然后将其转换为闪存卡。这里的小片段:

一次做一个我没有问题,IO进入do循环,然后我用纯函数做我需要做的事情。我真的不明白如何以重复的方式做到这一点,基本上我所追求的是:

问题是我如何编写 getVerbePages 来遍历 ps 中的每个字符串并干净地返回它?到目前为止,我已经能够很好地处理递归动作以及所有这些,非常像 Haskell 新手,但我不明白在重复 IO 动作时这一切是如何工作的。

0 投票
1 回答
1272 浏览

html - 在 Haskell 中使用 TagSoup 解析标签

我一直在尝试学习如何在 Haskell 中从 HTML 文件中提取数据,并且遇到了困难。我完全没有使用 Haskell 的经验,我之前的知识来自 Python(以及用于 HTML 解析的 BeatifulSoup)。

我正在使用 TagSoup 来查看我的 HTML(似乎是推荐的),并且对它的工作原理有一个基本的了解。这是我有问题的代码的基本部分(自包含,并输出用于测试的信息):

但是,我并不想使用任何“div”标签。我想以如下格式删除标签之前的所有内容:

我试过写出来:

但随后它试图找到文字 [0-9]+。我还没有找到 Text.Regex.Posix 模块的解决方法,并且转义字符不起作用。这里有什么解决方案?

0 投票
2 回答
278 浏览

haskell - 如何从 HTML 标记中提取内部文本?

我有以下代码:

这给了我这样的输出:[TagOpen "hello" [],TagText "my&",TagClose "world"]. 但我只想得到[TagText "my&"]. 我可以这样做:

这会给我这样的输出:[TagText "my&"]. 但我不知道里面是什么TagText,即"my&"。我的最终目标是得到"my&"我能得到的

我尝试使用TagText,但无法正确使用。

0 投票
1 回答
577 浏览

haskell - 从 url 获取数据并在 Haskell 上解析它的最佳方法是什么?

我在解析来自 url 的数据时遇到问题。

我有带有“https://”的网址,所以我认为我应该使用 import Network.HTTP.Conduit 但是

返回 L.ByteString 我真的不明白在那之后我应该做什么

所以我有这样的代码来获取数据

和解析示例

我怎样才能结合这两个部分的代码?