我想检查我已经占了我的所有选项,试图决定采取哪条路线之前。
目前我已经部署了一个小网站到自由层Azure的应用服务(.NET核心+ SQL Server中,对自由的小SQL数据库,他们就会给你)
我希望这个网站能够幕后的需要浏览器的模拟获取的一些数据。
- 我的浏览器的模拟最终是要刮从浏览器屏幕的一些信息,并下载和保存文件,但我必须模拟登录和复杂的导航,所以我相信它需要一个完整的浏览器仿真,不只是手动发送HTTP请求,为了不大量目标站点的反向工程的工作。
- 我刮的网站不希望被划伤,没有,我可以使用,而不是任何API。
为了避免有任何疑问,我做的拼抢绝对不是非法或不道德的。这是可以想象的,它打破了一些商业条款,但我已经检查分开的过程。
- 这是一个个人项目,所以很重要的是,我把它放在什么可以免费托管配件。
我认为这是很简单 - 我只是在我的网站上运行硒。
唉我发现,应用服务不支持安装Chrome或相似,而硒可以不反正工作。 (qazxsw POI)
What approaches are available to work around this?
I think that I can:
- 设置我的Azure中的VM
让我在托管环境的完全控制。
其它更多的DevOps的努力。
我看不出在Azure中无明显-VM选项。
- “这样做在容器”。
我发现了一个源暗示容器将允许浏览器安装,但保持低的DevOps开销。
我认为Azure的不支持Kubernetes是免费的。
- 重新设计我的代码,以便它不会试图模拟一个浏览器,只是猜测正确的HTTP请求。
(我认为这是一个令人难以置信大量的开发工作)
- 使用一些其他的纯C#浏览器模拟。 ?CefSharp?
我认为目前的症结是,硒需要Chrome浏览器从我运行C#应用程序单独存在。如果我可以使“浏览器”是C#的直接参与,也许,这将更好地工作?
它看起来像Citation可能会使它可以模拟铬,而无需安装一个单独的浏览器实例,因此是一个可行的选择?
可能会遇到与AppServices相同的“不支持”的问题。
我觉得这个方法很可能失去了非常愉快的使用的IWebDriver接口,虽然:(
- 不承载在Azure上。
可能涉及某种自托管的,由此我建立我的个人电脑主办的网站,揭露该网站向世界相应的IP映射,防火墙开放和其他的DevOps faff。
有没有我不知道其他的选择吗? (特别是那些内置到Azure的!)
有没有在我上面列出的选项任何其他考虑?