显示Jsoup元素
问题描述:
//我有这个AsynchTask获取网站博客的正文。但是,启动方法时不显示任何内容。显示Jsoup元素
protected Void doInBackground(Void... params) {
try {
Document document = Jsoup.connect(url).get();
Elements elements = document.select("div.pst-content safety clearfix entry-content p");
for(Element elements123 : elements){
title+=elements123.text();
System.out.println(elements123.text());
}
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void result) {
// Set title into TextView
TextView txttitle = (TextView) findViewById(R.id.titletxt);
txttitle.setText(title);
// System.out.println(title);
mProgressDialog.dismiss();
}
答
Definetly CSS选择器是错误的。
如果它正在与选择a
,并且不与乌尔当前的工作,问题是CSS选择器div.pst-content safety clearfix entry-content p
如果妳可以告诉你企图从HTML提取或网页可能有助于解决你的问题。取笑JSoup -
不是说它解决了任何问题,但不应该在循环中使用'title + = elements123.text()'。相反,你应该向'StringBuilder'追加新的元素。无论如何,你确定你的代码处理网址是正确的吗?您是否在简单的Java应用程序中测试了这个'select'查询(让主要方法说)? – Pshemo 2014-08-28 13:59:29
我试过选择“a”,它的工作原理。也许它只是查询? – 2014-08-28 14:11:46
这是可能的。如果你的代码适用于一个查询而不适用于其他查询,那么或者这个查询有问题,或者你正在解析错误的数据。考虑打印'document'来看看它是否真的包含了'div.pst-content'和你需要的其他元素(可能这个内容是由JavaScript动态生成的,在这种情况下,你需要像selenium这样的网络驱动程序,而不是简单的解析器像Jsoup)。 – Pshemo 2014-08-28 14:44:10