[英]getting data from website using Jsoup?
尝试使用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);
}
}
}
问题就在这里:
@Override
protected void onPostExecute(Void feed) {
String ankosh = document.attr("href");
text.setText(ankosh);
}
document
变量没有名为href
的属性。 这就是ankosh
变量为空的原因。
而是尝试以下操作:( 我想主要新闻是,如果第一个div在文档中具有fc-item__content类 )。
Element mainNewsDiv = document.select("div.fc-container--rolled-up-hide.fc-container__body > div:nth-child(1) > ul > li > div > div > div.fc-item__content").first();
if (mainNewsDiv == null) {
// Main news not found...
} else {
text.setText(mainNewsDiv.text());
}
最后一点,您应避免使用Jsoup.connect
加载文档。 在内部,它使用非常慢的URL
类。 请改用Volley。 请参阅此示例代码,其中显示了Volley和Jsoup的用法 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.