我試圖解析谷歌搜索結果的HTML來獲取每個結果的標題。這是通過機器人在私人嵌套類做如下圖所示:Jsoup谷歌搜索結果
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 "";
}
}
我試圖解析一個例子網址:http://www.google.com/#q=i+might+site:genius.com
出於某種原因,當我運行上面的代碼,我的計數被打印成0,因此沒有元素被存儲在結果中。任何幫助深表感謝!附: docs已被初始化並且HTML頁面已正確加載
我會看看這個。使用自定義API和直接使用Jsoup等庫來刮取網絡有什麼區別?谷歌是否沒有注意到你基本上繞過了他們的規則? – villagab4