网站自动化的最佳方法?

让我重新解释一下这个问题……

这是一个场景:作为保险代理人,您经常与多个保险网站合作。 对于每个网站,我需要登录并提取客户端。 我希望自动化这个过程。

我目前有一个为iMacros构建的解决方案,但需要下载/安装。

我正在寻找一个使用.NET框架的解决方案,该框架允许用户提供他们的登录凭据和有关客户端的信息,我将能够为他们自动执行此过程。

这将涉及每个特定网站的知识,这很好,我将拥有所有这些信息。

我希望此过程能够在后台进行,然后在执行操作后将网站启动给用户。

使用Watin 。 它是一个自动化IE和Firefox的开源.NET库。 它比操作原始HTTP请求或黑客攻击WebBrowser控件更容易,你可以从控制台应用程序或服务运行它,因为你提到这不是一个WinForms应用程序。

如果需要,您还可以使浏览器窗口不可见,因为您提到仅在某个时刻向用户显示此信息。

您可以尝试以下工具:

  • StoryTestIQ
  • selenium
  • 的Watir
  • 风车测试框架
  • Visual Studio Web测试

它们是自动化测试工具/框架,允许您从UI角度编写自动化测试并validation结果。

我以前在服务器上执行的winforms应用程序中使用WebBrowser控件完成了这个操作。 WebBrowser控件允许您访问页面上的html元素,输入信息,单击按钮/链接等。它应该允许您实现目标。

如果没有WebBrowser控件,有很多方法可以做到这一点,请查看HTML Agility Pack 。

假设您正在讨论使用某种机器人填写和提交表单,然后抓取响应以显示给用户。

使用HttpWebRequest(?)创建一个表单post,其中包含模型中的相关表单字段和数据并提交请求。 检索并分析响应,存储任何cookie,因为您需要在下一个请求时重新提交cookie。 根据第一个请求的结果制定下一个请求(记住必要时附加cookie)并提交。 检索响应并显示或解析并显示(取决于您希望实现的目标)。

你说这不是一个客户端应用程序 – 因此我将假设一个Web应用程序。 这样做的缺点是,一旦你开始代理用户的请求,你将不得不总是代理这些请求,因为你无法将任何会话cookie从目标站点传输给用户而且没有(简单/容易) / logical)用户登录目标站点然后将cookie传递给您的方式。

通常在尝试进行此类集成时,人们将使用某种forms的已发布API与相关公司/系统进行交互,因为它们是针对您所指的交互类型而设计的。

在你写作时,我不清楚你想要沟通的难度:

我目前有一个为iMacros构建的解决方案,但需要下载/安装。

我认为这里有一些你不明确的要求。 您当然需要在客户端的计算机上“下载/安装”.Net程序。 那么,有什么区别?

无论如何, Crowbar看起来很有希望:

Crowbar是一个基于使用服务器端无头mozilla浏览器的网络抓取环境。

它的目的是允许对DOM运行javascript scraper以自动化网站抓取但避免所有语法规范化问题。

对于不熟悉这个术语的人来说:“javascript scrapers”在这里意味着类似于iMacros的宏,用于从网站中提取信息(最终是一个Javascript程序,出于什么目的你使用它我不认为是区别)。

设计

Crowbar实现为一个(相当简单,实际上) XULRunner应用程序,它提供了一个用javascript实现的HTTP RESTful Web服务(基本上将Web浏览器转换为Web服务器!),您可以使用它来“远程控制”浏览器。

我不知道这个无头浏览器是否可以像普通的Firefox安装一样使用附加组件进行扩展。 在这种情况下,您甚至可以考虑使用您的iMacros宏(或使用CoScripter )和适当的包装。

我越是想到这一点,我觉得这对你想要实现的目标来说是一个复杂的解决方案。 所以,请澄清一下。