我在网上能找到的所有信息都是关于编写网络服务器的,但是关于网络客户端有用的函数似乎很少。理想情况下,我希望函数看起来像这样:
(website "http://www.google.com")
并返回一个包含整个网页的字符串,但我会对任何有效的方法感到满意。
最佳答案
这是一个简单的程序,看起来它可以执行您想要的操作:
#lang racket
(require net/url)
(port->bytes
(get-pure-port (string->url "http://www.google.com")))
如果您像我一样,可能还想将其解析为 s 表达式。 Neil Van Dyke 的 neil/html-parsing
是这样做的:
#lang racket
(require (planet neil/html-parsing:2:0)
net/url)
(html->xexp
(get-pure-port (string->url "http://www.google.com")))
请注意,由于该程序引用了一个行星包,因此首次运行该程序将下载并安装 htmlprag 包。构建文档可能需要相当长的时间。不过,这是一次性成本,再次运行该程序不会超过几秒钟。
关于web - 如何在 Racket 中阅读网页?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14016254/