Lua:获取网页

发布于 2024-11-26 13:22:25 字数 53 浏览 0 评论 0原文

我想获取一个网页并以字符串形式获取结果,但我不知道该怎么做。我在网上搜索并没有找到如何操作。

I want to fetch a webpage and get the result in a string, but I don't know how to do it. I search online and didn't find how to do it.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

我乃一代侩神 2024-12-03 13:22:25

我只需使用 Lua Socket ,它带有 http 子模块。您可以简单地使用 http.request 将网页放入您想要的任何容器中(默认为字符串,但您可以使用表、文件、stdio...使用 ltn12 过滤器和接收器)。

举个例子:

local http=require'socket.http'
local body, statusCode, headers, statusText = http.request('http://w3.impa.br/~diego/software/luasocket/http.html')
print('statusCode ', statusCode)
print('statusText ', statusText)
print('headers ')
for index,value in pairs(headers) do
    print("\t",index, value)
end
print('body',body)

I'd simply use Lua Socket which comes with an http submodule. You can simply use http.request to get a webpage into whatever container you'd want (default is string, but you can use a table, a file, stdio, ... using ltn12 filters and sinks).

As an example:

local http=require'socket.http'
local body, statusCode, headers, statusText = http.request('http://w3.impa.br/~diego/software/luasocket/http.html')
print('statusCode ', statusCode)
print('statusText ', statusText)
print('headers ')
for index,value in pairs(headers) do
    print("\t",index, value)
end
print('body',body)
携余温的黄昏 2024-12-03 13:22:25

如果您找不到确切的 http 客户端库,您可以自己实现,或者构建 别人的工作

在该链接中,虽然它被称为 libhttpd,但作者明确指出它可以用于任何用途。看起来像是一个更可用的 lua 套接字包装器。

If you can't find an exact http client library, you could implement on yourself, or build on someone else's work.

In that link, although it is called libhttpd, but the author clearly states that it can be used for anything. Looks like a more usable wrapper around lua sockets.

岁月打碎记忆 2024-12-03 13:22:25

如果你没有套接字(像我一样),但你有 http 库/模块,那么你可以尝试这个:

http.get("https://nodemcu.readthedocs.io/en/master/en/modules/http/", nil, function(code, data)
    if (code ~= 200) then
        print("HTTP request failed")
    else
        print(code, data)
    end
end)

它对我有用,

你可以在文档中找到更多信息 https://nodemcu.readthedocs.io/en/master/en/modules/http/#httpget

if you don't have socket (like me), but you have the http library/module, then you could try this:

http.get("https://nodemcu.readthedocs.io/en/master/en/modules/http/", nil, function(code, data)
    if (code ~= 200) then
        print("HTTP request failed")
    else
        print(code, data)
    end
end)

it works for me

you can find more info in the docs https://nodemcu.readthedocs.io/en/master/en/modules/http/#httpget

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文