是否有谷歌搜索关键字api?

时间:2015-02-10 10:01:04

标签: java api search keyword-search

当我在google.com上搜索" google"时会在底部提出一些相关的搜索查询:

google上的相关链接没有。 没有用户搜索关键字。 有什么这样的api是谷歌提供的吗?

1 个答案:

答案 0 :(得分:2)

不,谷歌不喜欢人们使用自动查询来收集数据。你需要制作一个收割机 - 最好的解决方案 - 为每个查询使用http代理,因为谷歌迟早会被阻止。您可以使用Selenium框架。这是我的例子(没有代理人):

import java.util.List;

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;

public class SeleniumTest {
    public static void main(String[] args) throws Exception {

        // The Firefox driver supports javascript

        WebDriver driver = new FirefoxDriver();

        // WebDriver driver = new HtmlUnitDriver();
        // ((HtmlUnitDriver) driver).setJavascriptEnabled(true);

        // Go to the Google Suggest home page
        driver.get("https://www.google.com/");

        // Enter the query string "Cheese"
        WebElement query = driver.findElement(By.name("q"));
        query.sendKeys("Cheese");

        // Sleep until the div we want is visible or 5 seconds is over
        long end = System.currentTimeMillis() + 5000;
        while (System.currentTimeMillis() < end) {
            WebElement resultsDiv = driver.findElement(By.className("sbqs_c"));

            // If results have been returned, the results are displayed in a
            // drop down.
            if (resultsDiv.isDisplayed()) {
                break;
            }
        }

        // And now list the suggestions
        List<WebElement> allSuggestions = driver.findElements(By
                .className("sbqs_c"));

        for (WebElement suggestion : allSuggestions) {
            System.out.println(suggestion.getText());
        }

        driver.quit();
    }