0
자바 스크립트가로드되면 쿠키가 응답에 설정되어야하는 또 다른 아약스 요청을합니다. 그러나 Splash는 여러 요청에 걸쳐 쿠키를 보관하지 않습니다. 모든 요청에 대해 쿠키를 유지할 수있는 방법이 있습니까? 또는 각 요청간에 수동으로 할당 할 수도 있습니다.javascript가 여러 요청을 할 때 Scrapy + Splash에서 쿠키를 설정하는 방법은 무엇입니까?
자바 스크립트가로드되면 쿠키가 응답에 설정되어야하는 또 다른 아약스 요청을합니다. 그러나 Splash는 여러 요청에 걸쳐 쿠키를 보관하지 않습니다. 모든 요청에 대해 쿠키를 유지할 수있는 방법이 있습니까? 또는 각 요청간에 수동으로 할당 할 수도 있습니다.javascript가 여러 요청을 할 때 Scrapy + Splash에서 쿠키를 설정하는 방법은 무엇입니까?
예, scrapy-splash README의 예가 있습니다 (Session Handling 참조). 즉, 먼저 모든 설정이 올바른지 확인하십시오. 그런 다음 SplashRequest(url, endpoint='execute', args={'lua_source': script})
을 사용하여 치료 요청을 보냅니다. 또한 scrapy-시작 README에서 등 쿠키 처리, 헤더 처리와 완벽한 예입니다
function main(splash)
splash:init_cookies(splash.args.cookies)
-- ... your script
return {
cookies = splash:get_cookies(),
-- ... other results, e.g. html
}
end
- 마지막 예를 here를 참조하십시오 스크립트를 렌더링하는 것은 다음과 같이해야한다.
도움을 주셔서 감사합니다. Mikhail이 자바 스크립트에서 작성한 호출에 쿠키를 설정해야 할 때 어떻게되는지, splash : go (url) 할 때 4 가지 요청이 발생합니다. 두 번째 요청 후에 쿠키를 설정하고 싶습니다. –
죄송합니다. 질문을 이해하지 못합니다. AJAX 응답에서받은 쿠키는 Splash cookiejar에 병합되어 splash : get_cookies()로 반환되어야합니다. splash : init_cookies()는 브라우저 쿠키의 내용을 설정합니다. 브라우저는 AJAX 요청을 포함하여 모든 요청에 대해 이러한 쿠키를 사용해야합니다. 그래서 위의 스크립트는 루아 스크립트에서 얼마나 많은 요청을하는지에 관계없이 작동해야합니다. –
아, 이제 이해합니다. 문제는 쿠키와 관련이 없습니다. 나는 기본적으로 스플래쉬 (Splash)를 통해 Crunchbase.com에 접속하려고하고 있는데, 그들은 이상한 봇 보호 장치를 가지고있다. 브라우저에서 액세스하면 항상 작동합니다. 스플래시의 동작을 브라우저와 똑같이 만드는 방법에 대해 알고 있습니까? –