Googleの検索結果のHTMLを解析して、各結果のタイトルを取得しようとしています。これは、以下に示すプライベートネストされたクラスでアンドロイドを介して行われます:Jsoup Google検索の結果
private class WebScraper extends AsyncTask<String, Void, String> {
public WebScraper() {}
@Override
protected String doInBackground(String... urls) {
Document doc;
try {
doc = Jsoup.connect(urls[0]).get();
} catch (IOException e) {
System.out.println("Failed to open document");
return "";
}
Elements results = doc.getElementsByClass("rc");
int count = 0;
for (Element lmnt : results) {
System.out.println(count++);
System.out.println(lmnt.text());
}
System.out.println("Count is : " + count);
String key = "test";
//noinspection Since15
SearchActivity.this.songs.put(key, SearchActivity.this.songs.getOrDefault(key, 0) + 1);
// return requested
return "";
}
}
私が解析しようとしているURL例:私は上記のコードを実行したときに、私の数は次のように印刷され、何らかの理由でhttp://www.google.com/#q=i+might+site:genius.com
を0のため、結果に要素が格納されません。どんな助けでも大歓迎です! P.S. docsが正しく初期化され、HTMLページが正しく読み込まれている
これを調べます。カスタムAPIを使用してJsoupなどのライブラリで直接Webをスクラップすることの違いは何ですか? Googleはあなたが本質的にそのルールをバイパスしていることに気付かないのですか? – villagab4