我可以在网上找到的所有信息都是关于编写 Web 服务器的,但似乎很少有关于对 Web 客户端有用的功能。理想情况下,我希望函数看起来像这样:
(website "http://www.google.com")
并返回一个包含整个网页的字符串,但我会对任何有效的东西感到满意。
这是一个简单的程序,它看起来像你想要的那样:
#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包。构建文档可能需要相当长的时间。不过,这是一次性成本,再次运行该程序不会超过几秒钟。