如何从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"
答案 0 :(得分:11)
我假设你只想做相当于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
,它会自动处理关闭端口。