2016-11-11 38 views

回答

1

是的,有在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 

也有與cookie處理,報頭處理等在scrapy飛濺README一個完整的例子 - 見最後一個例子here

+0

感謝您的幫助米哈伊爾,當我需要的時候我做'飛濺設置在JavaScript中,4個不同的請求發生的呼叫餅乾會發生什麼:去(URL)',我想第二個請求後設置Cookie –

+0

對不起,我不太明白這個問題。在AJAX響應中收到的Cookie應該合併到Splash cookiejar並在splash中返回:get_cookies()。 splash:init_cookies()設置瀏覽器cookiejar的內容,瀏覽器應該爲所有請求使用這些cookie,包括AJAX請求。因此,無論您在Lua腳本中做出多少請求,上面的腳本都應該可以工作。 –

+0

哦,我現在明白了,所以我猜這個問題不在於cookie。我基本上試圖通過Splash訪問Crunchbase.com,他們有一些奇怪的機器人保護。從瀏覽器訪問始終有效。你有沒有關於如何使Splash的行爲與瀏覽器完全相同的想法? –