javascript多次请求时如何在Scrapy+Splash中设置cookies?

How to set cookies in Scrapy+Splash when javascript makes multiple requests?

加载 javascript 时,它会发出另一个 ajax 请求,其中应在响应中设置 cookie。但是,Splash 不会在多个请求中保留任何 cookie,有没有办法在所有请求中保留 cookie?或者甚至在每个请求之间手动分配它们。

是的,scrapy-splash README - see Session Handling 部分有一个例子。简而言之,首先,确保所有设置都是正确的。然后使用 SplashRequest(url, endpoint='execute', args={'lua_source': script}) 发送 scrapy 请求。渲染脚本应该是这样的:

function main(splash)
    splash:init_cookies(splash.args.cookies)

    -- ... your script

    return {
        cookies = splash:get_cookies(),
        -- ... other results, e.g. html
    }
end

在 scrapy-splash 自述文件中还有一个完整的 cookie 处理示例,header 处理等 - 请参阅最后一个示例 here