java - Jsoup 代码不工作

标签 java android jsoup

嗨,我对编码真的很陌生。我试图从特定网站 http://www.rfebs.es/estadisticas/2017/liga/B_res.php 提取文本(HTML)使用 jsoup 但我似乎无法做到这一点。这是我的代码,提前谢谢您!

package davidgb.baseballspain;


import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;



public class MainActivity extends AppCompatActivity {
TextView texx;
Document doc;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    texx=(TextView)findViewById(R.id.textp);
    Button but1 = (Button)findViewById(R.id.but);
    but1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            new doit().execute();
        }
    });
}

public class doit extends AsyncTask<Void, Void, Void> {
    String words;
    @Override
    protected Void doInBackground(Void... params) {
        try {
            doc = Jsoup.connect("http://www.rfebs.es/estadisticas/2017/liga/B_res.php").get();
            words= doc.text();
        } catch (Exception e) {
            e.printStackTrace();
        }return null;
    }
    @Override
    protected void onPostExecute(Void aVoid) {

        super.onPostExecute(aVoid);
        texx.setText(words);
    }
}
}

最佳答案

修改您的类,以便您不需要跨不同线程访问公共(public)变量:

public class doit extends AsyncTask<Void, Void, String> {

    @Override
    protected String doInBackground(Void... params) {
        try {
            Document doc = Jsoup.connect("http://www.rfebs.es/estadisticas/2017/liga/B_res.php").get();
            return doc.text();
        } catch (Exception e) {
            e.printStackTrace();
        } return null;
    }

    @Override
    protected void onPostExecute(String result) {
        texx.setText(result);
    }
}

编辑 1

我在模拟器上重新运行了完全相同的代码,它的效果就像一个魅力。附上截图作为证明。请注意:请确保您的 list 中启用了 INTERNET:

<uses-permission android:name="android.permission.INTERNET" />

enter image description here

关于java - Jsoup 代码不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42867869/

相关文章:

java - 克隆方法可以使用构造函数创建对象吗

java - 无法在 javafx 中链接 fxml 和 Controller 文件变量

java - 如何让Titan图数据库与Google App Engine配合使用?

java - 使用 Android NDK 从 .so 文件调用 Native 函数

java - 在 jsoup 中获取 div 类中的文本

java - 高效地将二进制数据读入int[]

android - android :largeScreens? 的范围是多少

android - Arc 菜单项样式类似于 Android 的 tumblr 应用程序

Java Jsoup 提交表单

java - 使用 Jsoup 删除不包含自己文本的节点