evaljs不应该返回nil?

时间:2019-02-24 21:39:24

标签: scrapy splash

以下代码...

splash:evaljs('document.querySelectorAll("iframe.iframe-container.js-oddset-game-iframe")[0].contentDocument.querySelectorAll("td.leftText a.eventLink").length')

...返回8-即数组中有8个节点。

但是,当我然后尝试直接返回nodeList(数组)时,结果为nil?显然,由于从javascript代码返回了数组,因此应该返回表。

这是Splash中的错误吗? Splash无法处理对iframe中元素的访问?我也有--js-cross-domain-access选项。

1 个答案:

答案 0 :(得分:0)

这不是错误。仅当您将render.json端点与iframes=1参数一起使用时,iframe才可用。使用该选项时,您将无法运行自定义Lua脚本。

请参阅文档:https://splash.readthedocs.io/en/stable/api.html#render-json

这个答案:https://stackoverflow.com/a/44682917/4082726