-3

当我在 google.com 上搜索“google”时,底部会建议一些相关的搜索查询:

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

4

1 回答 1

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();
    }
于 2015-02-10T10:10:19.077 回答