我是android开发的新手。我使用Jsoup解析URL以获得文件位置。
下面是我用来解析URL的代码,它适用于我插入的大多数URL。例如,www.baidu.com/或www.nba.com/,记录的标题与页面源代码中显示的完全相同。
但是,对于http://music.baidu.com/,Eclipse Log中显示的标题与页面资源不同。
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>
另外,对于这两个网页,元素链接中没有任何内容,因此Log.d("text", link.text());永远不会返回任何内容。
我注意到这两个网页的源代码没有像其他超文本标记语言那样在超文本标记语言中有<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();
}
}有人能帮我解决这个问题吗?
发布于 2013-08-26 01:31:17
一旦我运行了您的代码,Eclipse就为我显示了正确的标题。但为了确保获得你的头衔,你可以尝试这样做:
String title = doc.select("head title").text();
System.out.println("title: "+ title);我希望它能帮上忙
https://stackoverflow.com/questions/18424910
复制相似问题