0

我这里有问题。假设有一个在网站上托管的 javascript 中实现的基本计算器(我已经用谷歌搜索了它并找到了一个示例并找到了这个:http ://www.unitsconverter.net/calculator/ )。我想做的是制作一个打开这个网站的程序,输入一些值并获取返回值。因此,在我们的网站计算器中,程序: - 打开网站 - 输入操作数 - 输入操作 - 输入操作数 - 检索结果 注意:无需向用户显示任何内容(例如浏览器) )。

我做了一些搜索,发现了 HttpWebRequest 和 HttpWebRespond。但我认为这些可以用来将数据发布到服务器,这意味着,我要发送数据的文件必须是 php、aspx 或 jsp。但是Javascript是客户端。所以,我认为在这种情况下它们对我来说有点用处。

有什么帮助吗?

更新:我已经设法使用 WebBrowser Control 工具(在 System.Windows.Forms 中找到)开发了网络机器人这是代码示例:

    webBrowser1.Navigate("LinkOfTheSiteYouWant"); // this will load the page specified in the string. You can add webBrowser1.ScriptErrorsSuppressed = true; to disable the script in a page
    webBrowser1.Document.GetElementById("ElementId").SetAttribute("HTMLattrbute", "valueToBeSet");

这些是我用来做我想做的事情的主要方法。我发现这个视频很有用:http ://www.youtube.com/watch?v=5P2KvFN_aLY

4

4 回答 4

3

我想您可以使用WatiN之类的东西将用户的输入/输出从您的应用程序传输到网站并返回结果,但正如另一位评论者指出的那样,当您可以编写自己的计算器时,这种事情的价值相当逃避我。

于 2012-07-18T16:17:58.623 回答
0

这是一个 API 问题:“远程网站是否为所需功能公开任何 API?”。

暴露交互式 API 的 Web 资源称为 Web 服务。有很多例子(例如谷歌地图)。

您可以通过客户端访问 API(取决于服务的条款和条件)。客户端的性质取决于您访问的 Web 服务的类型。

  • 基于 SOAP的服务基于 SOAP 协议。

  • 基于 REST的服务基于 REST 原则。

因此,如果有一个名为“Calculator”的可访问 Web 服务,那么您可以访问该服务,例如,调用 sum 方法。

在您的示例中,计算器是 Javascript 实现,因此它不是 Web 服务,不能通过 HTTP 请求访问。尽管如此,它的实现仍然是可访问的:它是实现计算器的javascript 文件。您始终可以在您的网站中包含该文件并通过 javascript 访问其功能(请注意条款和条件!!)。

一个非常常见的例子是存储在Google Libraries中的 jQuery 库。

于 2012-07-18T17:03:34.780 回答
0

您需要一个 JavaScript 解释器(引擎)来解析页面上的所有 JavaScript 代码。

https://www.google.com/search?q=c%23+javascript+engine

于 2012-07-18T16:15:54.600 回答
0

您正在寻找的是更类似于 Web 服务的东西。您提供的页面似乎不接受 HTTP POST 中的任何数据,并且源中没有您可以抓取的任何有意义的信息。例如,如果您想以编程方式搜索 eBay 拍卖,您可以弄清楚如何正确地向其发布数据,例如:

http://www.ebay.com/sch/i.html?_nkw=http+for+dummies&_sacat=267&_odkw=http+for+dummies&_osacat=0

然后通过 http 响应查看您要查找的信息。您可能需要创建一个正则表达式来匹配您正在寻找的标记,例如,如果您想知道有多少结果,您可以在 http 响应中搜索以下标记:

<div class="alt w"><div class="cnt">Your search returned <b>0 items.</b></div></div>

就客户端/javascript 的东西而言,你根本无法做任何你想做的事情。

于 2012-07-18T16:24:34.113 回答