如何在水族馆/ scrapy-splash中加载LUA模块?

问题描述 投票:1回答:1

我正在研究用于scrapy-splash的LUA脚本,并希望使用socket.http模块。该模块已安装,我已禁用沙箱并配置了包路径。但我无法让它发挥作用。我的环境是Linux上的水族馆。

我已经使用luasocket安装了luarocks并添加了

--disable-lua-sandbox --lua-package-path "/usr/local/share/lua/5.1/?.lua;/usr/local/share/lua/5.1/?/?.lua"

docker-compose.yml的飞溅实例。

当我运行脚本时,我收到以下错误:

"error": {"info": {"type": "LUA_INIT_ERROR", "message": "[string \"<python>\"]:1: module 'socket.http' not found:
    no field package.preload['socket.http']
    no file '/app/splash/lua_modules/socket/http.lua'
    no file '/app/splash/lua_modules/libs/socket/http.lua'
    no file '/usr/local/share/lua/5.1/socket/http.lua'
    no file '/usr/local/share/lua/5.1/socket/http/socket/http.lua'
    no file '/usr/local/share/lua/5.2/socket/http.lua'
    no file '/usr/local/share/lua/5.2/socket/http/init.lua'
    no file '/usr/local/lib/lua/5.2/socket/http.lua'
    no file '/usr/local/lib/lua/5.2/socket/http/init.lua'
    no file '/usr/share/lua/5.2/socket/http.lua'
    no file '/usr/share/lua/5.2/socket/http/init.lua'
    no file './socket/http.lua'
    no file '/usr/local/lib/lua/5.2/socket/http.so'
    no file '/usr/lib/x86_64-linux-gnu/lua/5.2/socket/http.so'
    no file '/usr/lib/lua/5.2/socket/http.so'
    no file '/usr/local/lib/lua/5.2/loadall.so'
    no file './socket/http.so'
    no file '/usr/local/lib/lua/5.2/socket.so'
    no file '/usr/lib/x86_64-linux-gnu/lua/5.2/socket.so'
    no file '/usr/lib/lua/5.2/socket.so'
    no file '/usr/local/lib/lua/5.2/loadall.so'
    no file './socket.so'"}, "description": "Error happened while executing Lua script", "type": "ScriptError", "error": 400}, "qsize": 0, "status_code": 400}

即使文件/usr/local/share/lua/5.1/socket/http.lua存在于我的机器上。我也试过chmod 777文件,但它仍然抛出错误。

lua scrapy-splash
1个回答
0
投票

事实证明,我没有必要使用socket.http

我现在正在使用splash:http_getsplash:http_post,它工作正常。

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