我想用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)
如何在Lua下载此页面?不是this的重复。
因为我的请求没有返回,301也没有返回302
对于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) )
使用luarocks你安装luasec:
luarocks install luasec
这将允许您需要ssl.https
luasec依赖于在您的系统上安装Openssl开发包。这样做的方式很大程度上取决于您的操作系统。