前提・実現したいこと
スクレイピング対象ページはこちらです。
https://www.kaigokensaku.mhlw.go.jp/02/index.php?action_kouhyou_pref_search_list_list=true
splashを使ってプルダウンの表示件数を「50件」に変更したいのですが、
ドロップダウンで値を変更することができず、困っています。
Splashを使用した私のluaスクリプトとエラーメッセージは次のとおりです。
発生している問題・エラーメッセージ
{ "error": 400, "type": "ScriptError", "description": "Error happened while executing Lua script", "info": { "source": "[string \"function main(splash, args)\r...\"]", "line_number": 7, "error": "JsError({'type': 'JS_ERROR', 'js_error_type': 'TypeError', 'js_error_message': \"undefined is not an object (evaluating 'rect.left')\", 'js_error': \"TypeError: undefined is not an object (evaluating 'rect.left')\", 'message': 'JS error: \"TypeError: undefined is not an object (evaluating \'rect.left\')\"'},)", "type": "LUA_ERROR", "message": "Lua error: [string \"function main(splash, args)\r...\"]:7: JsError({'type': 'JS_ERROR', 'js_error_type': 'TypeError', 'js_error_message': \"undefined is not an object (evaluating 'rect.left')\", 'js_error': \"TypeError: undefined is not an object (evaluating 'rect.left')\", 'message': 'JS error: \"TypeError: undefined is not an object (evaluating \'rect.left\')\"'},)" } }
該当のソースコード
LUA言語
1function main(splash, args) 2 splash.private_mode_enabled = false 3 assert(splash:go(args.url)) 4 assert(splash:wait(0.5)) 5 6 local pull_down = splash:select('select#displayNumber option[value="50"]') 7 pull_down:mouse_click() 8 assert(splash:wait(0.5)) 9 10 return { 11 html = splash:html(), 12 png = splash:png(), 13 har = splash:har(), 14 } 15end
試したこと
splashを用いたプルダウンについて事例調査しましたところ、stack overflowで以下のページを見つけました。
しかし、こちらはjsを実行して解決したとのことで、本件とはあまり関係ないようでした。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/07 09:58