我是android開發新手。我正在使用Jsoup解析URL以獲取文件位置。在Android應用程序中解析HTML和Jsoup問題
下面是我解析URL的代碼,它適用於我插入的大部分URL。 例如,www.baidu.com/
或www.nba.com/
,標題記錄與頁面源中顯示的完全相同。
但是,對於http://music.baidu.com/
,Eclipse日誌中顯示的標題與頁面資源不同。
Eclipse中顯示:百度音樂
頁面資源顯示:<title>百度音樂-中國第一音樂門戶</title>
(這是最重要的一個我想解決的問題。)
對於http://music.baidu.com/search?key=%E5%86%8D%E8%A7%81%E7%8E%8B%E5%AD%90+%E6%A3%89%E8%8A%B1%E7%B3%96
Eclipse中再次顯示百度音樂
頁面資源顯示<title>搜索含有"再見王子 棉花糖"的音樂_百度音樂-中國第一音樂門戶</title>
此外,對於這2個網頁,元素鏈接中沒有內容,因此Log.d("text", link.text());
從不返回任何內容。
我注意到2個網頁源代碼在HTML中沒有像其他HTML代碼那樣有<meta http-equiv="content-type" content="text/html;charset=utf-8">
。
package com.example.htmlparser;
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
//set layout view
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Thread downloadThread = new Thread() {
public void run() {
Document doc;
try {
String url = "";
doc = Jsoup.connect(url).get();
//doc = Jsoup.parse(new URL(url).openStream(), "UTF-8", url);
String title = doc.title();
Log.d("title", title);
Elements links = doc.select("a[href]");
for (Element link : links) {
//Log.d("link", link.attr("href").toString());
Log.d("text", link.text());
}
} catch (IOException e) {
Log.d("exception", e.toString());
}
}
};
downloadThread.start();
}
}
有人可以幫我解決這個問題嗎?