网站自动化的最佳方法?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网站自动化的最佳方法?相关的知识,希望对你有一定的参考价值。
让我重新解释一下这个问题......
这是一个场景:作为保险代理人,您经常与多个保险网站合作。对于每个网站,我需要登录并提取客户端。我希望自动化这个过程。
我目前有一个为iMacros构建的解决方案,但需要下载/安装。
我正在寻找一个使用.NET框架的解决方案,该框架允许用户提供他们的登录凭据和有关客户端的信息,我将能够为他们自动执行此过程。
这将涉及每个特定网站的知识,这很好,我将拥有所有这些信息。
我希望此过程能够在后台进行,然后在执行操作后将网站启动给用户。
使用Watin。它是一个自动化IE和Firefox的开源.NET库。这比操纵原始HTTP请求或者攻击WebBrowser控件来执行您想要的操作容易得多,并且您可以从控制台应用程序或服务运行它,因为您提到这不是WinForms应用程序。
如果需要,您还可以使浏览器窗口不可见,因为您提到的仅在某个时刻向用户显示此信息。
您可以尝试以下工具:
它们是自动化测试工具/框架,允许您从UI角度编写自动化测试并验证结果。
我以前在服务器上执行的winforms应用程序中使用WebBrowser控件完成了这个操作。 WebBrowser控件允许您访问页面上的html元素,输入信息,单击按钮/链接等。它应该允许您实现目标。
有没有WebBrowser控件可以做到这一点,看看HTML Agility Pack。
假设您正在讨论使用某种机器人填写和提交表单,然后抓取响应以显示给用户。
使用HttpWebRequest(?)创建一个表单帖子,其中包含模型中的相关表单字段和数据并提交请求。检索并分析响应,存储任何cookie,因为您需要在下一个请求时重新提交cookie。根据第一个请求的结果制定下一个请求(记住必要时附加cookie)并提交。检索响应并显示或解析并显示(取决于您希望实现的目标)。
你说这不是一个客户端应用程序 - 因此我将假设一个Web应用程序。这样做的缺点是,一旦您开始代理用户请求,您将不得不始终代理这些请求,因为您无法将任何会话cookie从目标站点传输给用户而且没有(简单/容易) / logical)用户登录目标站点然后将cookie传递给您的方式。
通常在尝试进行此类集成时,人们将使用某种形式的已发布API与相关公司/系统进行交互,因为它们是针对您所指的交互类型而设计的。
当你写作时,我不清楚你想要沟通的难度:
我目前有一个为iMacros构建的解决方案,但需要下载/安装。
我认为这里有一些你不明确的要求。您当然需要在客户端的计算机上“下载/安装”.Net程序。那么,有什么区别?
无论如何,Crowbar看起来很有希望:
Crowbar是一个基于使用服务器端无头mozilla浏览器的网络抓取环境。
它的目的是允许针对DOM运行javascript scraper来自动化网站抓取但避免所有语法规范化问题。
对于不熟悉这个术语的人来说:“javascript scrapers”在这里意味着类似于iMacros的宏,用于从网站中提取信息(最后是一个Javascript程序,出于什么目的使用它我不认为是区别)。
设计
Crowbar实现为一个(相当简单,实际上)XULRunner应用程序,它提供了一个用JavaScript实现的HTTP RESTful Web服务(基本上将Web浏览器转换为Web服务器!),您可以使用它来“远程控制”浏览器。
我不知道这个无头浏览器是否可以像普通的Firefox安装一样使用附加组件进行扩展。在这种情况下,你甚至可以考虑使用你的iMacros'宏(或使用CoScripter)和适当的包装。
我越是想到这一点,我觉得这对你想要实现的目标来说是一个复杂的解决方案。所以,请澄清一下。
以上是关于网站自动化的最佳方法?的主要内容,如果未能解决你的问题,请参考以下文章
SD-WAN篇(7.0) ❀ 08. 如何让网站访问自动选择最佳宽带?