2
JSoupでGoogle検索結果のリストを取得しようとしています。私が現在使っている方法は最初のページ(n)では完璧に動作しますが、n + 1ページではうまく動作しません。ここでは、私が最初のページを取得しています方法です:最初のページのhttps://www.google.com/search?q=apple
:JSoupでGoogle検索結果を取得する
doc = Jsoup.connect(search).userAgent("Chrome").get();
links = doc.getElementsByClass("r");
検索文字列は次のようなものが含まれます。そして、私のコードは、n + 1ページのために次のようになります。https://www.google.com/#q=apple&start=10
:N + 1ページの
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"));
}
検索は次のようになります。 主な問題は、n + 1回の検索でdoc.getElementsByClass("r")
に要素が含まれていないことです。つまり、クラスr
はJSoupが返すものには存在しません。 doc.toString()
で検索して確認しました。誰にも何か提案はありますか?
ありがとうございました!
検索結果を解析せず、代わりにAPIを使用することをお勧めします。 – Kayaman
@Kayamanどちらか? –
@Kayamanまた、私の研究の目的のために、私はAPIを使用しないことを望みます。どのようにHTMLを解析するかに関する提案はありますか? – Tommy