网站自动化的最佳方法是什么?

5
让我来改述一下这个问题...
场景如下:作为一个保险代理,您经常使用多个保险网站。对于每个网站,我需要登录并查找客户。我想要自动化这个过程。
我目前已经为iMacros构建了一个解决方案,但需要下载/安装。
我正在寻找一种使用.NET框架的解决方案,允许用户提供其登录凭据和有关客户的信息,并能够为他们自动化此过程。
这将涉及到每个特定网站的知识,这是可以接受的,我将拥有所有这些信息。
我希望这个过程能够在后台进行,并在完成操作后向用户启动网站。

2
“自动化网站”是什么意思?也许你指的是与“静态”网站相对应的“动态”网站? - pavium
4
你能否澄清一下你对“自动化”的使用?我可能只是有点困了。你的意思是指会“访问”网站并执行某些用户活动的过程(在这种情况下,cURL 是一个不错的选择),还是指它会动态生成页面? - Anthony
2
如果你指的是机器人访客,你想让它戳还是爬?“戳”指的是网站需要一个访问者来启动诸如发送电子邮件之类的操作,“爬”指的是从结果页面获取信息并返回给你。 - Anthony
该方法需要根据我的模型(类)在网站上的字段中插入信息。 - strickland
1
这个问题表述不清楚,请澄清您要寻找什么。如果是自动化测试框架,SO上有很多帖子详细介绍了许多不同的方法。没有必要重复造轮子。 - The Matt
我的猜测是你的动机是为现有网站提供一个基于SL的新UI,而无需修改该网站。这样大概可以涵盖吗? - AnthonyWJones
5个回答

8

寻找一些更为成熟且带有示例的东西。 - strickland
3
你说的“更加证明”是什么意思?每个框架的对应页面上都有大量的例子。 - The Matt
@mstrickland:SL还太年轻,仍在努力确立其名义上的工作方式,以便可能存在像这样神秘的事情的“证明”方法。 - AnthonyWJones

5
使用Watin。它是一个开源的.NET库,用于自动化IE和Firefox。相比于操作原始HTTP请求或通过WebBrowser控件来实现你想要的功能,它更容易使用。而且,你可以从控制台应用程序或服务中运行它,因为你提到这不是WinForms应用程序。如果需要,你还可以将浏览器窗口设置为不可见,因为你提到只在某个特定点向用户显示它。

+1 for Watin。非常适合测试Web应用程序,而且效果非常好! - Michael

3
我曾经在服务器上执行的winforms应用程序中使用WebBrowser控件完成了这个操作。 WebBrowser控件允许您访问页面上的HTML元素,输入信息,单击按钮/链接等。 它应该可以帮助您实现目标。
有一些不需要WebBrowser控件的方法,请查看 HTML Agility Pack

这不会是一个WinForms应用程序。 - strickland
根据您更新的问题,我仍然建议使用HTML Agility Pack来完成您想要实现的功能。 - Jason Miesionczek

0

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

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

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

通常,在尝试进行此类集成时,人们将使用某种已发布的API与所涉及的公司/系统进行交互,因为它们专为您所提到的类型的交互而设计。


0

我不清楚您在写下以下内容时想要传达什么困难:

我目前已经建立了一个针对iMacros的解决方案,但这需要下载/安装。

我认为您有一些要求是未明确说明的。您肯定需要在客户端计算机上“下载/安装”您的.Net程序。那么这有什么区别呢?

无论如何,Crowbar 似乎很有前途:

Crowbar是基于服务器端无头Mozilla浏览器的Web爬虫环境。

它的目的是允许针对DOM运行JavaScript爬虫,以自动化地抓取网站,但同时避免所有语法规范化问题。

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

设计

Crowbar是一个实现比较简单的XULRunner应用程序,它提供了一个基于javascript的HTTP RESTful网络服务(基本上将Web浏览器变成Web服务器!),您可以使用该服务来“远程控制”浏览器。

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

越想到这点,我就越觉得这是一个复杂的解决方案,与您想要实现的目标有些脱节。因此,请澄清一下您的意图。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接