有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java jsoup无法在安卓上正确解析HTML

我正在尝试使用jsoup根据某些属性提取链接。代码运行良好 当我把它作为一个简单的java程序运行时,但当我在安卓系统中运行时,我没有得到结果。我正在运行的代码如下:

List<String> feeds = new ArrayList<>();
try {
    Document doc = Jsoup.connect("http://www.bbc.co.uk/news/").get();
    Elements links = doc.getElementsByTag("link");

    String type = "application/rss+xml";

    for (Element link : links) {
        if (link.attr("type").equals(type)) {
            //System.out.println(link.attr("href"));
            feeds.add(link.attr("href"));
        }
    }

} catch (IOException e) {
    e.printStackTrace();
}

for(String item : feeds){
    System.out.println(item);
}

作为一个简单的java代码,它可以在bbc上找到RSS文件的链接。co.uk/news 但当我在Android AsyncTask中运行它时,我没有得到任何结果。 有什么解释吗


共 (2) 个答案

  1. # 1 楼答案

    很可能你的插座超时了。尝试增加timout值

    Jsoup.connect(url).timeout(10000).get();
    

    检查堆栈跟踪中的java.net.SocketTimeoutException

  2. # 2 楼答案

    这似乎是User-Agent的问题。 尝试覆盖默认的userAgent,如下所示

    Document doc = Jsoup.connect("http://www.bbc.co.uk/news/")
               .userAgent("Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36")
               .get();