如何使用jsoup解析lu,li标签?

时间:2016-02-07 11:06:38

标签: android jsoup

我知道,有很多问题,但没有回答帮助我 试图从一个着名的乌克兰门户网站解析足球新闻,并将其列入我的列表视图。

我解析了“news-feed”类:

 class ParseTitle extends AsyncTask<Void, Void, HashMap<String, String>>{

    @Override
    protected HashMap<String, String> doInBackground(Void... params) {
        HashMap<String, String> hashMap = new HashMap<>();

        try {
            Document document = Jsoup.connect("http://football.ua/england.html").get();
            Elements elements = document.select(".news-feed");

            for (Element element : elements){
                Element element1 = element.select("a[href]").first();
                hashMap.put(element.text(), element1.attr("abs:ahref"));
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return hashMap;
    }
}

1 个答案:

答案 0 :(得分:4)

使用

Elements elements = document.select("article.news-feed");

而不是

Elements elements = document.select(".news-feed");
编辑:将我的代码与你的代码进行比较,我看到了很好的差异,首先,我认为更重要的是,你在HashMap中累积读取值,我在StringBuffer中。然后我连接并走这条路:

try {

doc = Jsoup.connect("http://football.ua/england.html").userAgent("yourPersonalizedUA").timeout(0).ignoreHttpErrors(true).get();
topicList = doc.select("article.news-feed");

for (Element topic : topicList) {
    myString += topic.html();
}} catch (IOException e) { System.out.println("io - "+e); }

buffer.append(myString);

然后,如果一切正常

return buffer.toString();

假设您已经在开始时说过:

private Document doc;
private String myString;
private StringBuffer buffer;
private Elements topicList;

如果这有所帮助,那就不是真的,也许可以带来新的视角。您是否成功使用代码解析了另一个页面?