通过Google AJAX API获得真正的Google结果

时间:2010-07-07 09:16:49

标签: ajax

当我执行搜索时,我使用Google AJAX API(http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=flowers&gl=fr

(gl = fr) 第一个找到的URL是:flowercampings.com。

而当我使用google.fr时,第一个链接是:www.1800flowers.com

如何使用API​​获得相同的结果(我需要REST接口参数) 谢谢你的帮助

3 个答案:

答案 0 :(得分:1)

你做不到。

没有“真实”结果。

你看到的SERP(搜索引擎结果页面)!=其他人看到的SERP,因为有些因素考虑在内(地点,你的网络历史,以前的搜索,登录,退出,时间, ....)

是的,已知API不会显示与谷歌搜索页面相同的结果(有人说它是一个较旧的谷歌索引,我认为它只是不同),但如果旁边的人从他的计算机中搜索,他可能还会看到另一个SERP。

获得相同结果的唯一方法是在您的计算机上安装可编程浏览器,然后废弃结果并制作自己的JSON。但那可能不是你想要的。

答案 1 :(得分:0)

几乎搜索引擎基于您的个人信息(位置,国家,语言,历史,搜索行为/趋势,......)来计算结果页面,这就是原因。

答案 2 :(得分:0)

我们构建了一个运行完整浏览器的解决方案,以获取与实际用户看到的最接近的结果:https://serpapi.com

我们有多种语言的整合。的Python:

from lib.google_search_results import GoogleSearchResults
query = GoogleSearchResults({"q": "coffee"})
html_results = query.get_html()

GitHub:https://github.com/serpapi/google_search_results_python

爪哇:

Map<String, String> parameter = new HashMap<>();
parameter.put("q", "Coffee");
parameter.put("location", "Portland");
parameter.put(GoogleSearchResults.SERP_API_KEY_NAME, "demo");
GoogleSearchResults serp = new GoogleSearchResults(parameter);

JsonObject data = serp.getJson();
JsonArray results = (JsonArray) data.get("local_results");
JsonObject first_result = results.get(0).getAsJsonObject();
System.out.println("first coffee: " + first_result.get("title").getAsString());

GitHub:https://github.com/serpapi/google_search_results_java

和Ruby:

require 'google_search_results'
query = GoogleSearchResults.new q: "coffee"
hash_results = query.get_hash

GitHub:https://github.com/serpapi/google-search-results-ruby