当javascript发出多个请求时,如何在Scrapy + Splash中设置cookie?

时间:2016-11-11 08:23:44

标签: scrapy web-crawler scrapy-splash

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

1 个答案:

答案 0 :(得分:2)

是的,scrapy-splash自述文件中有一个示例 - 请参阅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 README中还有一个完整的cookie处理,标题处理等示例 - 请参阅最后一个示例here