JSレンダリングサイト、API使えない、頻繁に更新しない場合はseleniumよりsplashが便利
dockerではimageを使いまわす(PCスペック対策)
#コンテナ確認 docker ps -a #コンテナスタート docker start
cssは400に、images不要
function main(splash, args) splash:on_request(function(request) if request.url:find('css') then request.abort() end end) splash.images_enabled = false splash.js_enabled = false assert(splash:go(args.url)) assert(splash:wait(0.5)) return splash:html() end
#プライベートモードを解除 splash.private_mode_enabled=false # headerをいじる headers = { [‘User-Agent’]=‘…..’ [‘cookie’]=‘…..’ } splash:set_custom_headers(headers) #コメント --[[ --]]
#コンテナ削除して作り直す docker rm #splashコンテナを作成・起動 docker run -it -p 8050:8050 scrapinghub/splash #splash時間を長く docker run -it -p 8050:8050 scrapinghub/splash --max-timeout=3600 #dockerメンテ docker system prune 鯨のアイコン preferences 虫のマーク Reset to factory defaults 再起動
注意(scrapy設定がgithubと異なるところがある)
SPLASH_URL = 'http://localhost:8050'