Я хотел бы проверить, учел ли я все свои варианты, прежде чем пытаться решить, какой маршрут выбрать.
В настоящее время я развернул небольшой веб-сайт на бесплатной службе приложений Azure (.NET).Core + SQL Server, на бесплатной крошечной базе данных SQL, которую они вам предоставят)
Я хочу, чтобы этот сайт мог извлекать некоторые данные за кулисами, что требует имитации браузера.
- Моя браузерная симуляция в конечном итоге состоит в том, чтобы собирать некоторую информацию с экрана браузера, загружать и сохранять файл, но мне нужно симулировать логины и сложную навигацию, поэтому я считаю, что это должна быть полная симуляция браузера, а не просто отправкаHTTP-запросы вручную, чтобы работать без огромного количества реверс-инжиниринга целевого сайта.
- Снимаемый мной сайт не ожидает удаления и не имеет API, которые я могуиспользуйте вместо.
- Во избежание каких-либо сомнений, я делаю соскоб определенно , не незаконный или аморальный.Можно предположить, что это нарушает некоторые вопросы и ответы, но я уже проверяю это отдельно.
- Это личный проект, поэтому важно, чтобы я соответствовал тому, что может бытьразмещен бесплатно.
Я думал, что это очень просто - мне просто нужно запустить Selenium на моем сайте.
Увы, я обнаружил, что AppServices не поддерживает установку Chrome или аналогичногои что Selenium может не работать в любом случае.( Цитирование )
Какие подходы доступны для решения этой проблемы? Я думаю, что могу:
- Настроить Azure в качестве виртуальной машины
- Дает мне полный контроль над средой хостинга.
- Множество усилий DevOps.
- Я не вижу очевидного варианта свободной виртуальной машины в Azure.
- «Сделай это в контейнерах».
- Я нашел источник, предполагающий, что контейнеры будут позволять устанавливать браузеры, но при этом сохраняются низкие издержки DevOps.
- Я думаю, Azure поддерживает Kubernetes бесплатно.
- Перестройте мой код, чтобы он не пытался симулировать браузер, а просто угадал правильные HTTP-запросы.
- (я думаю, что этоневероятно большой объем работы разработчика)
- Воспользуйтесь другим симулятором браузера на чистом C #.? CefSharp?
- Я думаю, что текущим камнем преткновения является то, что Selenium требует, чтобы Chrome существовал отдельно от приложения C #, которое я запускаю.Если я смогу сделать «браузер» прямой частью C #, может, это будет работать лучше?
- Похоже, что
CefSharp
может позволить имитировать Chromium без установки отдельного экземпляра Chrome, поэтомучто жизнеспособный вариант? - Может столкнуться с теми же "неподдерживаемыми" проблемами с AppServices.
- Я думаю, что этот подход, вероятно, теряет очень приятный в использовании интерфейс IWebDriver, хотя: (
- Не размещать на Azure.
- Вероятно, подразумевает некоторый тип собственного хостинга, при котором я настраиваю свой персональный компьютер для размещения сайта и выставляю этот сайт мирусоответствующее сопоставление IP-адресов, открытие брандмауэра и другие ошибки DevOps.
Есть ли другие варианты, о которых я не знаю? (особенно встроенные вAzure!)
Есть ли какие-либо другие соображения в перечисленных выше параметрах?