Javascript 刮花罐';无法呈现此页面-是否未呈现动态内容?

Javascript 刮花罐';无法呈现此页面-是否未呈现动态内容?,javascript,python,scrapy,splash-screen,Javascript,Python,Scrapy,Splash Screen,我最近决定尝试Scrapy Splash插件,但是Splash无法呈现这个站点 结果是这样的: ['<html><head>\n<title>Proces Legislacyjny 6 kadencja</title>\n<script language="JavaScript" type="text/javascript">\n<!-- \nself._domino_name = "_Main";\n// -->\n<

我最近决定尝试Scrapy Splash插件,但是Splash无法呈现这个站点

结果是这样的:

['<html><head>\n<title>Proces Legislacyjny 6 kadencja</title>\n<script language="JavaScript" type="text/javascript">\n<!-- \nself._domino_name = "_Main";\n// -->\n</script>\n</head>\n\n<frameset frameborder="0" border="0" cols="169,1*">\n\n<frame frameborder="0" noresize name="Left" src="/proc6.nsf/start?OpenPage&amp;BaseTarget=Main">\n\n<frameset frameborder="0" rows="70,1*">\n\n<frame frameborder="0" noresize scrolling="no" name="Maintop" src="/proc6.nsf/pgHeader?OpenPage">\n\n<frame frameborder="0" noresize name="Main" src="/proc6.nsf/Przebieg%20procesu%20legislacyjnego%20-%20projekty%20ustaw?OpenView">\n</frameset>\n</frameset>\n\n</html>']
['\n合法程序6卡登卡\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n']
显然,您可以看到,这与使用常规浏览器访问站点时不同。没有表数据、链接和漂亮的标记


刮擦溅漏了什么东西

Splash正确呈现页面,但您使用的是render.html,它是主页的返回html,而不是其中的框架。在这种情况下,需要使用render.json并将
iframes
设置为1

有关更多详细信息,请参阅下一期

编辑-1

我在页面上运行了下面的Lua脚本,它提供了所有帧的内容

function main(splash, args)
  assert(splash:go(args.url))
  assert(splash:wait(5))

  local getFramesHtml = splash:jsfunc([[
   function test() { 
      var data = [];
      for (var i = 0 ; i < window.frames.length; i++)
       {
          data.push(window.frames[i].document.documentElement.outerHTML);
       }
      return data;
    }
    ]]);

  return {
    html = splash:html(),
    frames = getFramesHtml()
  }
end
主功能(飞溅,参数)
断言(splash:go(args.url))
断言(飞溅:等待(5))
本地getFramesHtml=splash:jsfunc([[
函数测试(){
var数据=[];
对于(var i=0;i

好吧,它的输出仍然与普通浏览器不同,看:{“geometry”:[0,0,1024,768],“url”:“title”:“Process Legislacyjny 6 kadencja”,“requestedUrl”:“,”childFrames:[{“geometry”:[0,0,169,768],”url:“,”title:“,”requestedUrl:“,”childFrames:[],“frameName:”Left”,{“geometry:[169,0,0,855,70],”,“url:”“title:”“requestedUrl:”“childFrames:[],”frameN…我的意思是,这些IFAME显然没有加载,是因为CORS吗?或者更确切地说-我注意到页面本身发送了一个表单。当我通过scrapy splash发送表单时,它会正确呈现吗?甚至可能吗?@MikolajM,请检查我的编辑。你可以通过scrapy调用此函数并获得HTMLTanks:)我看到你是我们正在使用lua脚本为每个帧运行一些JS。这段代码的用途是什么:data.push(window.frames[i].document.documentElement.outerHTML)?
function main(splash, args)
  assert(splash:go(args.url))
  assert(splash:wait(5))

  local getFramesHtml = splash:jsfunc([[
   function test() { 
      var data = [];
      for (var i = 0 ; i < window.frames.length; i++)
       {
          data.push(window.frames[i].document.documentElement.outerHTML);
       }
      return data;
    }
    ]]);

  return {
    html = splash:html(),
    frames = getFramesHtml()
  }
end