Я передаю некоторые аргументы конечной точке Splash от сканера Scrapy, который будет использоваться сценарием Splash, который будет запущен. Иногда в этом скрипте могут возникать ошибки. Для ошибок времени выполнения я использую pcall
, чтобы обернуть сомнительный скрипт, чтобы я мог изящно перехватывать и возвращать ошибки времени выполнения. Однако для синтаксических ошибок это не работает, и вместо этого выдается ошибка 400. Я настроил свой сканер на обработку таких ошибок с помощью атрибута handle_httpstatus_list
, поэтому мой обратный вызов синтаксического анализа вызывается при такой ошибке, где я могу изящно проверить, что пошло не так.
Пока все хорошо, за исключением того, что я не мог корректно обработать синтаксическую ошибку в скрипте lua, и я не смог вернуть некоторые входные аргументы Splash, к которым обратный вызов будет ожидать доступа. Прямо сейчас я вызываю response._splash_args()
на SplashJsonResponse
объекте, который у меня есть, и это позволяет мне получить доступ к этим значениям. Однако это по сути защищенный метод, который означает, что он не может быть долгосрочным решением.
Есть ли лучший способ получить доступ к аргументам Splash в ответе, когда вы вообще не можете полагаться на связанный сценарий Splash?