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