作为一项学习练习,我正在通用LISP中编写网络刮板。 (粗糙)计划是:

  1. 利用 QuickLisp 管理依赖
  2. 利用 Drakma 加载页面
  3. xmls

我刚刚遇到了一个症状:我抓取的网站并不总是会产生有效的XHTML。这意味着步骤3(用XML分析页面)无效。而且我不愿意使用正则表达式 这家伙 :-)

那么,谁能推荐一个通用的LISP软件包来解析无效的XHTML?我想象的是类似的东西 HTML敏捷包 for .net ...

有帮助吗?

解决方案

“ CLOSURE-HTML”项目(在QuickLisp中获得)将从Bogus HTML中恢复,并生产一些可以使用的东西。我将闭合HTML与CXML一起处理任意网页,并且效果很好。 http://common-lisp.net/project/closure/closure-html/

其他提示

对于下一个访客:今天我们有丰满: https://shinmera.github.io/plump

Plump是HTML/XML像文档的解析器,重点是对无效标记的宽容。它可以处理无效属性,不良关闭标签顺序,未编码的实体,不存在标签类型,自关闭标签等的事情。它将文档解析为类表示,并提供了一系列的DOM函数来操纵它。您可以自由地将其更改为解析自己的课程。

和他们我们还有其他LIB来查询文档,例如 lquery (类似jQuery)或 CLS (简单的CSS选择器)由同一作者。

现在,我们也有一些关于普通LISP食谱的教程: https://lispcookbook.github.io/cl-cookbook/web-scraping.html

另请参见Common Lisp Wiki: http://www.cliki.net/web

邓肯(Duncan),到目前为止,我已经成功地在Ubuntu Linux和Windows(7&XP)下使用了Clozure Common Lisp,因此,如果您正在寻找可以在任何地方使用的实现,则可以尝试使用此功能。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top