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

如何使用jSoup获取div标签

姬昊焱
2023-03-14

我正在尝试从网站获取一些数据。它看起来像这样

<div id="1" class="tms"> 
    <div class="point">
     TINAZTEPE
    </div> 
    <div class="days"> 
     <div class="day">
      Hafta İçi
     </div> 
     <div>
      "06:45" 
      <i class="fa fa-wheelchair"></i>
     </div> 
     <div>
      "07:00" 
      <i class="fa fa-wheelchair"></i>
     </div> 
     <div>
      "07:15" 
      <i class="fa fa-wheelchair"></i>
     </div> 
     <div>
      "07:25" 
      <i class="fa fa-wheelchair"></i>
     </div> 
     <div>
      "07:30" 
      <i class="fa fa-wheelchair"></i>
     </div> 
     <div>
      "07:45" 
      <i class="fa fa-wheelchair"></i>
     </div> 

我只需要得到div标签中的时间值。这是我的Java代码。

 ArrayList<String> info=new ArrayList<String>();
    try
    {
        Document document = Jsoup.connect("https://nevakit.com/otobus/izmir/412").get();
        Elements broadcasts = document.select("div[id=1]");

        for (Element element : broadcasts) {

            info.add(element.getElementsByTag("div").text());

        }

        String total=null;
        for(String temp:info)
        {
            total+=temp;
        }

        txtView.setText(total);

    }catch(Exception e)
    {
        e.printStackTrace();
    }

它没有给出任何错误,但在日志上

"D/NetworkSecurityConfig:未指定网络安全配置,使用平台默认设置"

我看到也许这可以帮助你解决问题。提前感谢您,任何回应将不胜感激。

共有1个答案

汤枫涟
2023-03-14

您需要使用Asynask来执行此操作,请使用下面的代码

 class PerformTask extends AsyncTask<Void,Void,Void>{
        ArrayList<String> info=new ArrayList<String>();
        @Override
        protected Void doInBackground(Void... voids) {
            try
            {
                Document document = Jsoup.connect("https://nevakit.com/otobus/izmir/412").get();
                Elements broadcasts = document.select("div[id=1]");

                for (Element element : broadcasts) {

                    info.add(element.getElementsByTag("div").text());

                }


            }catch(Exception e)
            {
                e.printStackTrace();
            }
            return null;
        }

        @Override
        protected void onPostExecute(Void aVoid) {
            super.onPostExecute(aVoid);
            String total=null;
             for(String temp:info)
                {
                    total+=temp;
                }
            txtView.setText(total);
        }
    }

从OnCrate调用它,如下所示

new PerformTask().execute();
 类似资料:
  • 我有一些url。我想从url指向的html中获取所有href,从所有获取的hrefs中获取所有href(递归)。关键是我想设置“递归”的深度。例如,如果深度=1,我只需要来自超文本标记语言的href。如果深度=2,我需要来自超文本标记语言的hrefs(假设为list1)和来自list1的每个href的hrefs,依此类推 以下是我使用jsoup得到的结果: 我应该如何修复递归条件以使其正确?

  • 我想使用jsoup从网页中提取内容。这些值在内部标签中,如何提取这些值? 例如 我想提取锚点标签中的内容首页*将如何做到这一点?

  • 问题内容: 我有一个Div标签,如下所示 我如何获得eventTTL的值?我想显示eventTTL的值,即:)“ 4583476000”。 问题答案: 有关更多信息,请访问:https : //jsoup.org/cookbook/extracting-data/attributes-text- html

  • 如何使用JSoup(http://JSoup.org/)按标记获取元素? 但它输出:

  • 问题内容: 当我使用jsoup提取数据时遇到一个职位。数据如下: 我想要这样的数据: 我怎样才能做到这一点?谁能帮我? 问题答案: 您可以将html解析为,选择-Element并获取其文本。 例: 输出: