使用 scrapy-splash 保持页面活动

我有一个带有 javascript 页面,想要使用 scrapy-splash 多次进行数据抓取。每次页面加载大约需要 7 秒钟,如果可能的话,我想要保持页面活动,以继续执行 javascript 并检索数据。我尝试设置 cookie 来维持会话活动,但在执行 javascript 时返回一个未定义的错误和 400 请求错误。但是,当仅使用 start_url 时运行相同的 lua 脚本,它可以正常工作。

是否有一种方法可以保持页面在加载状态下,以便我可以在 lua 脚本中继续访问它?我认为可以通过 last_response 或 splash:history() 来实现。

function main(splash, args)
    splash:init_cookies(splash.args.cookies)
    if args.start_url == true then
         assert(splash:go(args.url))
    local entries = splash:history()
    local last_response = entries[#entries].response
    else
        splash:evaljs(args.jscript)
    end
    return {
    url = splash:url(),
    headers = last_response.headers,
    http_status = last_response.status,
    cookies = splash:get_cookies(),
    html = splash:html(),
    }
end
点赞