Javascript 网站「;“主管”;在C#/.NET中

Javascript 网站「;“主管”;在C#/.NET中,javascript,c#,.net,ajax,xmlhttprequest,Javascript,C#,.net,Ajax,Xmlhttprequest,我不确定我要寻找的技术名称是什么,但这正是我试图实现的目标: 我需要为使用Ajax/XHR与服务器通信的特定网站编写一个“客户端” 我的方法是制作一个自定义web浏览器,在后台运行JavaScript,我可以向用户显示所有相关信息。我的第一个想法是使用隐藏的WebBrowser,但我不确定它是否能够实现以下所有功能: 拒绝请求(以便不加载不必要的内容) 检查(并可能编辑)XHR请求和响应 进行自定义JavaScript调用(使用JavaScript:quasi-protocol是可以的) 检查

我不确定我要寻找的技术名称是什么,但这正是我试图实现的目标:

我需要为使用Ajax/XHR与服务器通信的特定网站编写一个“客户端”

我的方法是制作一个自定义web浏览器,在后台运行JavaScript,我可以向用户显示所有相关信息。我的第一个想法是使用隐藏的WebBrowser,但我不确定它是否能够实现以下所有功能:

  • 拒绝请求(以便不加载不必要的内容)
  • 检查(并可能编辑)XHR请求和响应
  • 进行自定义JavaScript调用(使用
    JavaScript:
    quasi-protocol是可以的)
  • 检查HTML元素的事件侦听器(以便我可以调用它们)
基本上,我想要的功能与C#中Chrome的开发者工具类似

既然我目前的想法是通过自定义代理使用WebBrowser,并使用硬编码的事件侦听器(手动查找,希望名称不会很快改变),那么最简单的方法是什么呢?

如果您真的想使用C#和Chrome,请选择:

它是.NET和Chromium浏览器的绑定

我认为它可能会更易于使用,但这需要使用javascript编写代码,这当然也会使自定义javascript调用更容易


旁注:新的应用程序实际上是用Electron构建的,所以即使是微软也使用Electron来开发基于javascript/web技术的应用程序。

使用javascript听起来是个好主意,但问题是它只是用.NET编写的大型应用程序的一部分。事实上,它应该是一个图书馆。然后我会去图书馆。同样是Awesomium,它更容易入门,但Chromium版本在该项目中落后了一步。您需要向用户呈现所关注网站的内容吗?或者是库处理它的读取?不,整个事情的重点是从页面收集所需的数据,检查XHR是一种最简单的方法,因为所有需要的数据都通过itAha发送,那么我认为您可以使用Rest库来代替,并进行屏幕抓取。目标应用程序大量使用javascript吗?@EmilIngerslev如果你说的“目标应用程序”是指我的目标网站,那么是的,事实上它正在实时更新。更糟糕的是,页面本身只是一堆表、图像和加载GIF,所有数据都在加载之后加载。即使在加载之后,页面抓取也会很困难,因为很多“提示”如样式类和div名称似乎是随机变化的……我可以看到您的问题。我认为,任何无头浏览器都可以减轻这项任务的负担,但我能想到的所有无头浏览器(比如PhantomJs)都不是.NET。您可以构建一个PhantomJs脚本,并通过C#与之交互,但这同样是外部依赖(可以作为“工具”包含)