Я хочу прочитать эту страницу, используя Lua https://smart -lab.ru / divnds / 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?Не дубликат этого .
, потому что мой запрос не возвращается ни 301, ни 302
для https ссылок, необходимо использовать библиотеку ssl, попробуйте этот код:
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. Способ сделать это во многом зависит от вашей ОС.