J'essaie d'obtenir une liste des résultats de recherche Google via JSoup. La méthode que j'utilise actuellement fonctionne parfaitement pour la première page (n), mais pour n + 1 pages ça ne marche pas très bien. Voici comment je reçois la première page:Obtenir les résultats de recherche Google avec JSoup
doc = Jsoup.connect(search).userAgent("Chrome").get();
links = doc.getElementsByClass("r");
La chaîne de recherche contiendrait quelque chose comme: https://www.google.com/search?q=apple
pour la première page. Ensuite, mon code ressemble à ceci pour n + 1 pages:
for(int i = 1; i <= pages; i++){
search = "https://www.google.com/#q=" + keyword + "&start=" + (i*10);
doc = Jsoup.connect(search).userAgent("Mozilla").get();
links.addAll(doc.getElementsByClass("r"));
}
La recherche n + 1 pages ressemblerait à quelque chose comme: https://www.google.com/#q=apple&start=10
. Le problème principal que j'ai est que doc.getElementsByClass("r")
dans les recherches n + 1 ne contient aucun élément. Cela signifie que la classe r
n'existe pas dans les retours de JSoup. J'ai vérifié cela en cherchant par doc.toString()
. Est-ce que quelqu'un a des suggestions?
Merci!
Je vous suggère de ne pas analyser les résultats de la recherche, mais plutôt utiliser une API. – Kayaman
@Kayaman lequel? –
@Kayaman Aussi, pour les besoins de mes recherches je voudrais ne pas utiliser une API. Des suggestions sur comment simplement analyser le HTML? – Tommy