【发布时间】:2016-06-27 07:48:38
【问题描述】:
尝试使用 Jsoup 而不是网站 API 来练习并从网站获取信息。 我的代码没有错误,但文本字段没有改变。它只是向我显示一个空白区域。我如何从网站获取信息?我正在尝试获取主要新闻,以便可以在我的网站上发布。
我的代码:
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.os.AsyncTask;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
import java.io.IOException;
import java.io.InputStream;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
Document document;
TextView text;
String ankosh;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
text = (TextView)findViewById(R.id.textView);
new Ankosh().execute();
}
public class Ankosh extends AsyncTask<Void, Void, Void> {
private Exception exception;
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected Void doInBackground(Void... params) {
try {
// Connect to the web site
document = Jsoup.connect("http://www.theguardian.com/us").get();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void feed) {
String ankosh = document.attr("href");
text.setText(ankosh);
}
}
}
【问题讨论】:
-
练习很好,但你很可能违反了 ToS。此外,如果您需要帮助,您应该指定需要解析的 html 的确切部分。您不能指望这里的人们访问该站点来找出您可能要寻找的内容。
-
调试你的代码,看看为什么。在这种情况下,html 文档的根标签根本没有(也不应该)有一个名为
href的属性。这意味着您的ankosh变量为空或空String。请学习如何使用断点和调试。