1

我必须开发一个网络应用程序,在地图上显示某些地方,而这些地方已经可以在另一个网站地图上找到……有没有可能,从我的应用程序中,我调用另一个网站搜索表单并收集结果?

4

3 回答 3

5

我建议为此使用标准API

  1. YQL

    雅虎!查询语言是一种表达能力强的类 SQL 语言,可让您跨 Web 服务查询、过滤和连接数据。

  2. Bing API典型用法

  3. 您如何以编程方式搜索 Google 的 Java API

于 2013-05-17T17:29:43.673 回答
3

它可能......但合法性是另一个问题。

如果在“另一个”网页上使用 GET 搜索引擎,那么它会更简单(当然,也可以使用 POST 来完成)。只需创建 URL,在您的应用程序中加载其内容,然后为生成的 HTML 编写解析器。很有可能,结果将以稳定的方式(表格,divitis)形成,所以更容易。只需为结果 HTML(或其他类型)编写简单的正则表达式并从中获取结果。

从搜索结果中进行这种“蛮力”数据挖掘的问题在于,如果他们更改页面,您的应用程序就会“下地狱”。在我的应用程序中,我使用外部配置文件解决了这个问题,包括您仅更改搜索查询和外部正则表达式的 URL。

例子:

URL: http://www.example.com/search.php?query=[SEARCHED_DATA]

文本[SEARCHED_DATA]在应用程序内替换为您正在搜索的任何内容。

如果页面发生变化,您可以轻松地提交应用程序更新,而无需重建它。

一些提供搜索 API 的页面,这是更好的方式。但从你的问题来看,我认为情况并非如此。

于 2013-05-17T17:26:25.137 回答
3

您最好的选择是尝试与提供某种 API 访问其数据的网站集成。试图从 3rd 方网站抓取 HTML 是自找麻烦。

于 2013-05-17T17:28:02.793 回答