阅读Lua中的html页面

问题描述 投票:0回答:2

我想用Lua https://smart-lab.ru/dividends/index/order_by_t2_date/desc/阅读本页

我可以用python做到这一点。它读取我想要的一切:

from urllib.request import urlopen
txt=urlopen("https://smart-lab.ru/dividends/index/order_by_t2_date/desc/", timeout=10).readlines()
print(txt)

但我不能用lua做到这一点:

require "socket"
http = require 'socket.http'
local address = "https://smart-lab.ru/dividends/index/order_by_t2_date/desc/"
local body = http.request(address)

它只打印:enter image description here

如何在Lua下载此页面?不是this的重复。

因为我的请求没有返回,301也没有返回302

http lua
2个回答
1
投票

对于https链接,你需要使用ssl库,试试这段代码:

local https = require('ssl.https')
local url = 'https://smart-lab.ru/dividends/index/order_by_t2_date/desc/'
local resp = {}
local body, code, headers = https.request{ url = url,  sink = ltn12.sink.table(resp) }   
if code~=200 then 
    print("Error: ".. (code or '') ) 
    return 
end
print("Status:", body and "OK" or "FAILED")
print("HTTP code:", code)
print("Response headers:")
if type(headers) == "table" then
  for k, v in pairs(headers) do
    print(k, ":", v)        
  end
end
print( table.concat(resp) )

0
投票

使用luarocks你安装luasec:

luarocks install luasec

这将允许您需要ssl.https

luasec依赖于在您的系统上安装Openssl开发包。这样做的方式很大程度上取决于您的操作系统。

© www.soinside.com 2019 - 2024. All rights reserved.