使用 jsoup 从 Internet 获取数据

Obtain data from internet with jsoup

**嗨,我正在尝试从页面获取数据,但我不知道如何获取此数据:第 120 章 和 de url link

这是页面中的代码(我对其进行了简化):

<div class="row">
<div class="col-12">
<div class="card chapters" id="chapters">
<ul class="list-group list-group-flush">
<li class="list-group-item p-0 bg-light upload-link" data-index="0">
<h4 class="px-2 py-3 m-0">
<div class="row">
<div class="col-10 text-truncate">
<a style="display: block;" class="btn-collapse" onclick="collapseChapter('collapsible490362')" role="button"> Capítulo 120.00</a>
</div>
</div>
</h4>
<div style="display: block;" id="collapsible490362">
<div class="card chapter-list-element">
<ul class="list-group list-group-flush chapter-list">
<li class="list-group-item">
<div class="row">    
<div class="col-2 col-sm-1 text-right">
<a href="https://lectortmo.com/view_uploads/599487" class="btn btn-default btn-sm">
<span class="fas fa-play fa-2x" style="color:#2957ba"></span>
</a>
</div>
</div>
</li>
</ul>
</div>
</div>
</li>
</ul>
</div>
</div>
</div>

这一行可以看到(Chapter 120)我需要在TextView中显示的文本,但我不知道如何获取它

<a style="display: block;" class="btn-collapse" onclick="collapseChapter('collapsible490362')" role="button"> Chapter 120</a>

在这一行中我们可以看到我需要的url:

<a href="https://lectortmo.com/view_uploads/599487" class="btn btn-default btn-sm">

这是我解析获取数据的方法:

@Override
    protected ArrayList<TMODatosSeleccion> doInBackground(Void... voids) {
        String url = getIntent().getStringExtra("valor");

        tmoDatosSeleccions.clear();
        try {
            Document doc = Jsoup.connect(url).get();

            Elements data = doc.select("div.row>.col-10");
            int size = data.size();
            Log.d("doc", "doc: "+doc);
            Log.d("data", "data: "+data);
            Log.d("size", ""+size);
            for (Element e : data) {
                String numeroCap = e.select("a").attr("none");
                String urlManga = e.select("div.row>.col-2").select("a").addClass("btn").attr("href").trim();
                tmoDatosSeleccions.add(new TMODatosSeleccion(numeroCap, urlManga));
            }
        }  catch (IOException e) {
            e.printStackTrace();
        }
        return tmoDatosSeleccions;
    }

有人可以帮助我吗?

打印屏幕:

您可以使用以下方法获取您要查找的两个链接:

Elements data = doc.select("div.row a");
for (Element e : data)
{
    // process the link
}

或者您可以使用以下方式单独获取它们:

Elements data = doc.select("div.row>.col-10 a");
if (data.size() == 1)
{
    Element e = data.get(0);
    // process col-10 link
}

data = doc.select("div.row>.col-2 a");
if (data.size() == 1)
{
    Element e = data.get(0);
    // process col-2 link
}

您遇到的主要问题是 col-2 元素未嵌套在 col-10 元素内,因此您的循环不会找到任何项目。