网站自动化的最佳方法?

问题描述 投票:5回答:5

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

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

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

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

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

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

c# .net asp.net-mvc silverlight
5个回答
5
投票

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

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


8
投票

您可以尝试以下工具:

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


3
投票

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

有没有WebBrowser控件可以做到这一点,看看HTML Agility Pack


0
投票

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

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

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

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


0
投票

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

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

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

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

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

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

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

设计

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.