没有配额限制的JSON搜索引擎API列表,类似于Bing?

24

我想展示一些自定义搜索结果。

我已经查看了谷歌和微软(必应)的JSON API。不幸的是,谷歌对每天的查询次数有限制(最多一万次查询需要支付50美元)。然而,Bing允许每天进行“无限”次查询,且免费。

是否还有其他像Bing的JSON API一样没有像谷歌API那样的查询限制的服务呢?

另一个相关的问题可能是,像Metacrawler这样的服务如何可以结合几个搜索引擎的搜索结果,而这些引擎的服务条款明确指出,这些结果只能通过(付费的)API获取,而不能通过网络爬虫获取。


嗨,请看一下http://indexden.com - 这正是你所需要的。 - Iaroslav Vorozhko
5
Bing的搜索API现在不再是免费的,需要付费才能使用。具体信息可以到以下网址查询:https://datamarket.azure.com/dataset/5BA839F1-12CE-4CCE-BF57-A49D98D29A44 - KFL
3个回答

15

通常服务和API会有使用阈值,以便于进行实验和小规模使用而不受任何障碍和前期障碍的限制,但是可以通过付费使用开放更好的SLA和附加选项来为需要该级别支持的应用提供可能性。

话虽如此,在 programmableweb.com 上搜索API可能是一个有趣的选择 - 可以查看 http://www.programmableweb.com/apis/directory/1?apicat=Search

我也很好奇,你具体在寻找什么功能,希望在Bing API中看到什么等等。有任何反馈,请告诉我,我可以转达给团队(因为我是Bing团队的一员)。


1
NikhilK,谢谢您的回复。我一直在使用Bing API时遇到的最大问题是结果似乎比正常的bing搜索网站返回的结果不相关。例如,如果我搜索“nu.nl papandreou”,我期望它会返回许多与papandreou有关的nu.nl网站上的结果。相反,我得到了一个很少被访问的投资者网站,该网站恰好链接到nu.nl,并且其他人碰巧在那里谈论Papandreou。 - Tom
1
同意。与网络结果相比,API的结果很糟糕。没有理由结果应该不同。此外,一些使用条款有点限制性。 - Ben McCann

5

2
FAROO 看起来不错,但对结果的控制程度不高,查询时仅支持 AND(关键词)作为支持的运算符 - Alastair
对于一些人来说可能是个破坏交易的因素,但 Faroo 也需要注册 API 密钥。 - lsh
3
Faroo认为另一个不能接受的问题是你的API密钥只能在注册时指定的IP地址上使用。 - lsh

1

我和bing遇到了同样的问题,所以我正在尝试另一种解决方案。 我试图像人类一样解析他们的HTML内容。他们网站的HTML有一些限制,所以我爬取了他们的移动版本。

如果有的话,这是我在Java中使用Jsoup和Apache http组件的代码:

    DefaultHttpClient client = new DefaultHttpClient();
    client.getParams().setParameter(CoreProtocolPNames.USER_AGENT, "Mozilla/5.0 (Windows NT 6.2; rv:9.0.1) Gecko/20100101 Firefox/9.0.1");
    client.getParams().setParameter(ClientPNames.COOKIE_POLICY, CookiePolicy.IGNORE_COOKIES);

    int page = 0;
    String surl = "http://m.bing.com/search/search.aspx?A=webresults&Q=" + URLEncoder.encode("site:www.facebook.com/ +\"?sk=info\"+\"new york\"+\"Bar\"", "UTF-8") + "&D=Web&SI=" + (page * 10) + "&PN=" + (page);
    HttpGet get = new HttpGet(surl);
    InputStream content = client.execute(get).getEntity().getContent();
    Document doc = Jsoup.parse(content, "UTF-8", "http://www.bing.com/");
    Elements elements = doc.select(".s15 a");
    for (Element e : elements) {
        String url = e.attr("href");
        int v = url.indexOf("REDIRURL=");
        if (v > 0) {
            url = url.substring(v + 9);
            url = url.substring(0, url.indexOf("&"));
            url = URLDecoder.decode(url, "UTF-8");
        } else {
            break;
        }
        System.out.println(url + " : " + e.text());
    }

2
你知道微软是否会检测同一IP地址在特定时间范围内请求大量搜索作业吗?例如,谷歌会发出验证码。 - PAX

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接