当我在google.com上搜索" google"时会在底部提出一些相关的搜索查询:
google上的相关链接没有。 没有用户搜索关键字。 有什么这样的api是谷歌提供的吗?
答案 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();
}