当前位置: 首页 > 知识库问答 >
问题:

使用Jsoup从网站获取数据?

卢毅
2023-03-14

尝试使用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);



        }
    }


}

共有1个答案

元玮
2023-03-14

问题在于:

@Override
protected void onPostExecute(Void feed) {
    String ankosh = document.attr("href");
    text.setText(ankosh);
}

文档变量没有名为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。连接以加载文档。在内部,它使用URL类,这是出了名的慢。用截击代替。请参阅此示例代码,其中显示了Volley和Jsoup的使用。

 类似资料:
  • 我刚开始使用JSoup从网站获取小文本,但我不知道如何从“title”类中获取“BONES”一词: 这是我的代码:

  • 我正在为Java开发人员使用最新的Eclipse IDE中的最新jsoup(1.13.1)(包括孵化组件)版本:2020-09(4.17.0)构建ID:20200910-1200。 我试图解析一个非常具体的网站,但没有成功。在我执行这些行之后:doc=jsoup.connect(“http://pokehb.pw/%d7%a2%d7%95%d7%a0%d7%94/21/%d7%a4%d7%a8%d

  • 我使用jSoup解析所有的超文本标记语言从这个网站:新闻 我可以获取所有的倾斜,描述与选择一些我需要的元素。但找不到要选择的视频URL元素。我怎么能得到视频链接与jSoup或另一种库。谢谢!

  • 本文向大家介绍SpringBoot中使用Jsoup爬取网站数据的方法,包括了SpringBoot中使用Jsoup爬取网站数据的方法的使用技巧和注意事项,需要的朋友参考一下 爬取数据 导入jar包 新建实体类 编写爬虫工具类 可以看到内容、图片、价格系数爬取 到此这篇关于SpringBoot中使用Jsoup爬取网站数据的方法的文章就介绍到这了,更多相关SpringBoot Jsoup爬取内容请搜索呐

  • 问题内容: 在此网站上,您可以输入您的学生卡号,然后显示该卡上还剩多少钱。我想使用JSOUP获得信息。这是我当前的代码,但是不起作用, 我没有太多经验,所以我不知道在哪里寻找问题。一些想法: 我应该使用还是? 在使用chrome devoloper工具时,发布数据是我使用功能发送的所有数据。但是,如果发送时出现错误,为什么? 我应该发送解密或加密的数据吗?(两者均在chrome devoloper

  • 所以我尝试从pretag获取数据,我设置doc连接到url选择pretag,结果出错了,我需要获取的数据按这里