【问题标题】:How to get html response from a url string? (Scheme/Racket)如何从 url 字符串中获取 html 响应? (方案/球拍)
【发布时间】:2012-04-08 14:03:13
【问题描述】:

如何从 url 字符串中获取 html 响应?使用这个:

#lang racket
(require net/url)
(require net/websocket/client)
(define google (string->url "http://google.com"))

(ws-connect(struct-copy url google [scheme "ws"]))

给我ws-connect: Invalid server handshake response. Expected #"\242\266\336\364\360\"\21~Y\347w\21L\2326\"", got #"<!DOCTYPE html>\n"

【问题讨论】:

标签: html url scheme racket


【解决方案1】:

我假设您只想执行与 HTTP GET 等效的操作。

(require net/url)
(define google (string->url "http://google.com"))

使用get-pure-port进行HTTP GET;它返回一个输入端口。另外,上面的 URL 会重定向,所以我们必须启用以下重定向。

(define in (get-pure-port google #:redirections 5))

如果您希望将响应作为单个字符串,您可以使用port->string

(define response-string (port->string in))
(close-input-port in)

或者你可以将它传递给一些将它解析为 HTML 或 XML 的函数。 PLaneT上有几个这样的库;我推荐(planet neil/html-parsing:1)

另见call/input-url,它会自动处理关闭端口。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 2013-03-03
    • 2017-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多