使用C#访问网站

时间:2012-07-18 16:12:16

标签: c# javascript web bots

我这里有问题。假设在网站上托管的javascript中实现了一个基本计算器(我已经用Google搜索并查找示例并找到了这个:http://www.unitsconverter.net/calculator/)。我想做的是制作一个打开这个网站的程序,输入一些值并获得返回值。那么,在我们的网站计算器中,该程序: - 打开网站 - 输入操作数 - 进入手术 - 输入操作数 - 检索结果 注意:事情应该在不需要向用户显示任何内容的情况下完成(例如浏览器)。

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

任何帮助?

更新: 我已经设法使用WebBrowser控件工具(在System.Windows.Forms中找到)开发Web bot 以下是代码示例:

    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 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:0)

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

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

答案 2 :(得分: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的内容而言,你很明显无法做任何你喜欢的事情。

答案 3 :(得分:0)

这是API的问题:“远程网站是否公开了所需功能的API?”。

公开交互式API的Web资源称为Web服务。有大量的例子(Google Maps用于比例)。

您可以访问API - 取决于条款&amp;服务条件 - 通过客户。客户端的性质取决于您访问的Web服务的类型。

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

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

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