reactjs Scrapy-splash不呈现来自某个React驱动站点的动态内容

3pvhb19x  于 2023-02-12  发布在  React
关注(0)|答案(1)|浏览(131)

我很好奇,想看看是否有任何splash可以从该页面获取动态作业内容-www.example.comhttps://nreca.csod.com/ux/ats/careersite/4/home?c=nreca#/requisition/182
为了让splash接收到URL片段,你必须使用一个splashRequest。2为了让它处理JS cookie,我必须使用一个lua脚本。3下面是我的环境,脚本和零碎的代码。
该网站似乎呈现在3个'步骤':
1.基本上是带有脚本标记的空HTML
1.上面的脚本运行并生成站点页眉/页脚,然后检索另一个脚本
1.#2中的脚本运行,并与JS集cookie一起检索动态内容(我想要抓取的作业)
如果你在URL上做一个简单的GET(例如在postman中),你将只看到步骤1的内容。使用splash,我只得到步骤2的结果(页眉/页脚)。我 * 做 * 看到JS cookie的响应。cookiejar
我无法获取动态作业内容(步骤3)进行渲染。
环境:
刮擦1.3.3刮擦-飞溅0.72 settings

script = """
        function main(splash)
          splash:init_cookies(splash.args.cookies)
          assert(splash:go{
            splash.args.url,
            headers=splash.args.headers,
            http_method=splash.args.http_method,
            body=splash.args.body,
            })
          assert(splash:wait(15))

          local entries = splash:history()
          local last_response = entries[#entries].response
          return {
            url = splash:url(),
            headers = last_response.headers,
            http_status = last_response.status,
            cookies = splash:get_cookies(),
            html = splash:html(),
          }
        end
    """

    return SplashRequest('https://nreca.csod.com/ux/ats/careersite/4/home?c=nreca#/requisition/182', 
        self.parse_detail, 
        endpoint='execute',
        cache_args=['lua_source'],
        args={
            'lua_source': script,
            'wait': 10,
            'headers': {'User-Agent': 'Mozilla/5.0'}
        },
    )
s1ag04yj

s1ag04yj1#

这一定是默认在私人浏览模式下运行splash的问题(特别是不允许访问window.localStorage)。这通常会导致javascript异常发生。尝试使用--disable-private-mode选项启动splash或参考此文档条目:www.example.com网站。http://splash.readthedocs.io/en/stable/faq.html#disable-private-mode.

相关问题