屏幕刮刮数据库

时间:2011-12-10 13:41:14

标签: c# windows-phone-7 screen-scraping

我一直在寻找有关Windows Phone 7屏幕抓取的帮助,但无法找到任何与我想要的相关的帮助。我的应用程序的基础是在设备的输入框中键入一个电话号码 - >将其传递到网站的搜索框 - >搜索网站的SQL数据库 - >将原始结果传回手机并将其显示在表格中。

我获得网站所有者的许可,可以将他的在线数据库用于此目的。

这是可能的,如果是的话,我将如何做到这一点?

提前致谢!

编辑:经过一些额外的研究后,我发现使用POST方法,我可以将搜索框所需的数据发送到网站上,结果已成功找到,但我不确定如何将结果显示在申请本身?我知道数据是通过WireShark中查看的数据包成功发送的。再次感谢。

POST代码:

        InitializeComponent();
        Dictionary<string, object> parameters = new Dictionary<string, object>();
        parameters.Add("search_name", "Google"); //Test Search
        parameters.Add("submit", "Search");
        PostClient proxy = new PostClient(parameters);
        proxy.DownloadStringCompleted += (sender, e) =>
        {
            if (e.Error == null)
            {
                //Process the result...
                data = e.Result;
            }
        };
        proxy.DownloadStringAsync(new Uri("http://www.SITE.com/search.php", UriKind.Absolute));
        webBrowser1.Navigate(new Uri(, UriKind.Absolute));`

2 个答案:

答案 0 :(得分:0)

据我所知,不可能/允许访问Windows Phone上运行的其他应用程序。

除非其他应用程序的发布者连接到您的网站/网络服务,否则这是不可能的。

注意:当Windows Phone 8问世并且它与Windows 8相同或类似时,可能会有合同允许连接这样的应用程序。 (这只是猜测)

答案 1 :(得分:0)

我不会使用网站的UI和屏幕抓取结果,而是创建与网页生成的请求类似或相同的HTTP请求(这可能是包含表单数据的POST请求)。然后我会将其发送到Web服务器并使用类似HtmlAgilityPack的内容来解析响应中所需的数据。

实际上,该网站使用HTML作为邮件格式为您提供HTTP API。直接使用它,而不是使用这些消息的客户端呈现,这些消息最终是为用户交互而不是代码交互而设计的。