在Javascript中引用网站

时间:2013-07-23 18:35:03

标签: javascript

有没有什么方法可以在没有实际加载的情况下引用给定的网站?例如,如果我想在雅虎的头版搜索文本“香蕉”......

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

这将加载yahoo,然后弹出一个提示为true或false。如果没有物理加载Yahoo,我怎么会获得这种行为,而只是提示说真或假?

5 个答案:

答案 0 :(得分:1)

我认为你要找的是YQL。例如,您可以使用PhantomJS向此服务进行查询。

答案 1 :(得分:1)

您可以向您的网址发送ajax get请求,并以json或类似内容的形式返回内容。这是你使用jquery的方法。

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

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

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

您基本上是在寻找HTML抓取功能的基本形式。这篇文章列出了可用于实现功能的一些选项 - Options for HTML scraping?

答案 4 :(得分: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的示例。