【发布时间】:2015-12-11 19:42:58
【问题描述】:
一般来说,我的网站主要内容是带有文本的帖子列表。所以我解析了这段 HTML 代码中的每一篇文章。
<div class="col-xs-12" style="margin:0.5em 0;line-height:1.785em">Some text</div>
为此,我创建了这个 AsyncTask。
class NewPostsAsyncTask extends AsyncTask<String, Void, String> {
@Override
protected void onPreExecute() {
super.onPreExecute();
progressDialog = new ProgressDialog(MainActivity.this);
progressDialog.setTitle("Новые");
progressDialog.setMessage("Загрузка...");
progressDialog.setIndeterminate(false);
progressDialog.show();
}
@Override
protected String doInBackground(String... params) {
Document doc;
try {
doc = Jsoup.connect(URL).get();
content = doc.select("[style=margin:0.5em 0;line-height:1.785em]");
titleList.clear();
for (Element contents : content) {
if (!contents.text().contains("18+")) {
titleList.add(contents.text());
}
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
listView.setAdapter(adapter);
progressDialog.dismiss();
}
}
但是我有一些问题。所有帖子都不会存储在一个网页上。您必须在所有帖子的末尾单击链接才能重定向到包含帖子的另一个页面。
这个块有这个HTML代码。
<div class="row"><div class="col-xs-12">
<div class="paginator">
<span class="pagina">1683</span> " | "
<span class="pagina"><a href="/page/1682">1682</a></span> " | "
<span class="pagina"><a href="/page/1681">1681</a></span> " | "
<span class="pagina"><a href="/page/1680">1680</a></span> " | "
<span class="pagina"><a href="/page/1679">1679</a></span> " | "
<span class="pagina"><a href="/page/3">3</a></span> " | "
<span class="pagina"><a href="/page/2">2</a></span> " | "
<span class="pagina"><a href="/page/1">1</a></span>
</div>
</div>
</div>
如何在之前的帖子之后转到另一个页面,解析其他帖子并在 ListView 中打印它们?因此,我希望将本网站的所有帖子都放在一个 ListView 中。你能告诉我应该怎么做吗?
【问题讨论】:
-
您将不得不遍历所有页面。以下是如何获取下一页链接的示例:
String url = doc.select("div.paginator span.pagina>a").first().attr("abs:href"); -
能把网址发一下吗?
-
@Stephan killpls.me
标签: java android html android-listview jsoup