网站自动化的最佳方法?

时间:2009-10-11 01:03:06

标签: c# .net asp.net-mvc silverlight

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

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

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

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

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

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

5 个答案:

答案 0 :(得分:8)

您可以尝试以下工具:

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

答案 1 :(得分:5)

使用Watin。它是一个自动化IE和Firefox的开源.NET库。这比操纵原始HTTP请求或者攻击WebBrowser控件来执行您想要的操作容易得多,并且您可以从控制台应用程序或服务运行它,因为您提到这不是WinForms应用程序。

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

答案 2 :(得分:3)

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

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

答案 3 :(得分:0)

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

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

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

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

答案 4 :(得分:0)

当你写下来时,我不清楚你想要沟通的难度:

  

我目前有一个专为此设计的解决方案   iMacros但需要一个   下载/安装。

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

无论如何,Crowbar似乎很有希望:

  

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

     

其目的是允许跑步   针对DOM的javascript scraper   自动化网站抓取但是   避免所有语法规范化   的问题。

对于不熟悉这个术语的人:“javascript scrapers”这里的意思就像iMacros的宏,用于从网站中提取信息(最后是一个Javascript程序,出于什么目的你使用它我不认为有所作为。)

  

设计

     

Crowbar实现为(而不是   实际上是简单的XULRunner应用程序   提供HTTP RESTful Web   服务在javascript中实现   (基本上将网络浏览器变为   您可以使用的Web服务器!)   “远程控制”浏览器。

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

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