0

有什么方法可以在不实际加载的情况下引用给定的网站?例如,如果我想在 Yahoo 的首页搜索“Bananas”文本……</p>

var site = (location.href ="http://yahoo.com");
var arraycontainsturtles = (site.indexOf("Bananas") > -1);
window.prompt(arraycontainsturtles)

这将加载雅虎,然后弹出一个提示说真假。我如何在不实际加载雅虎的情况下获得这种行为,而只是让提示说真假?

4

5 回答 5

1

我认为您正在寻找的是YQL。例如,您可以使用PhantomJS查询此服务。

于 2013-07-23T18:41:58.103 回答
1

您可以向您的 url 发送一个 ajax 获取请求,并以 json 或类似的形式返回内容。这就是使用 jquery 的方法。

$.get('www.yourwebsite.com?searchParam=banana', function(data) {
   // data will contain the search results for your keyword banana
});

假设:您需要在 www.yourwebsite.com 中编写一个脚本,以通过 searchParam(在本例中为香蕉)获取值并从数据库中搜索内容并返回。

于 2013-07-23T18:51:11.313 回答
0

您实际上是在查看 HTML 抓取功能的基本形式。这篇文章列出了一些可用于实现该功能的选项 - HTML 抓取的选项?

于 2013-07-23T19:20:31.927 回答
0

您可以使用YQL从页面获取文本内容(通过发出 AJAX 请求),然后搜索文本。

var url='http://google.com';
$.get('http://query.yahooapis.com/v1/public/yql?q=select%20*%20%20from%20html%20where%20url%3D%22'+encodeURI(url)+"%22", function(resp){
    var text = $(resp).text(); // text from url
    console.log( text.search('google') ); // search for "google"
});

这是关于jsfiddle的示例。

于 2013-07-23T19:27:11.010 回答
0

您的脚本不会加载任何外部网站。您基本上是在创建一个正在搜索的字符串 - 这就是 a site.indexOf("yahoo");is的原因true,但是site.indexOf("bananas");is false

您可以将各种 API 用于许多搜索引擎,这些 API 允许您以 [通常] XML 格式检索搜索结果。但是,这需要使用诸如 PHP 之类的服务器端语言来完成。

于 2013-07-23T18:42:22.640 回答