7

我可以在网上找到的所有信息都是关于编写 Web 服务器的,但似乎很少有关于对 Web 客户端有用的功能。理想情况下,我希望函数看起来像这样:

(website "http://www.google.com")

并返回一个包含整个网页的字符串,但我会对任何有效的东西感到满意。

4

1 回答 1

9

这是一个简单的程序,它看起来像你想要的那样:

#lang racket

(require net/url)

(port->bytes
 (get-pure-port (string->url "http://www.google.com")))

如果您像我一样,您可能还想将其解析为 s 表达式。尼尔·范戴克的做法是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")))

注意,由于这个程序是指一个planet包,第一次运行这个程序会下载并安装htmlprag包。构建文档可能需要相当长的时间。不过,这是一次性成本,再次运行该程序不会超过几秒钟。

于 2012-12-24T04:25:24.153 回答