Ошибка парсинга Jsoup (org.jsoup.select.Selector $ SelectorParseException: Не удалось проанализировать запрос ' ) - PullRequest
0 голосов
/ 23 марта 2020

Итак, я пытался использовать Jsoup для получения HTML, чтобы я мог получить в нем некоторые данные. Проблема в том, что я получаю эту ошибку, и я просто не могу сказать, почему, и что я буду делать для дальнейшей проверки этого метода.

Код:

    package com.example.books.HTTP

import com.example.books.model.SearchResultRetailer
import org.jsoup.Jsoup
import org.jsoup.nodes.Document
import org.jsoup.nodes.Element


object HTTPRetailer {


    fun searchRetailer(q: String?): SearchResultRetailer {
        val BOOK_ID: String = q.toString()
        val RETAIL_URL: String = "https://books.google.com.br/books?id=$BOOK_ID&sitesec=buy&source=gbs_buy_r"

        val doc: Document? = Jsoup.connect(RETAIL_URL).get()
        val pageh1: Element? = doc?.getElementById("summary_content")
        val pageTable: String? = pageh1?.getElementsByTag("table").toString()
        lateinit var result: SearchResultRetailer
        doc?.run {
            select(pageTable).forEachIndexed{index, element ->
                var linha = element.getElementsByTag("a")
                val link = linha.attr("href")
                val revendedor = linha.text()
                linha = element.getElementsByClass("noprice")
                if (linha == null){
                    linha = element.getElementsByClass("price")
                }
                val preco = linha.text()
                val index = element.getElementsByTag("a").lastIndex
                var i = 0
                while (i<index){
                    result.run {
                        setLink(i, link)
                        setPrice(i, preco)
                        setRetailerName(i, revendedor)
                    }
                    i++
                }

            }

        }
        return result
    }

и ошибка:

org.jsoup.select.Selector $ SelectorParseException: Не удалось проанализировать запрос '

D / Ошибка: ERR: exClass = org.jsoup.select.Selector $ SelectorParseException

ERR: exMsg = Не удалось разобрать запрос '

Я собираюсь поместить полный текст ошибки в блок кода, потому что он огромен, и он выглядит следующим образом:

    E/AndroidRuntime: FATAL EXCEPTION: DefaultDispatcher-worker-4
    Process: com.example.books, PID: 27741
    org.jsoup.select.Selector$SelectorParseException: Could not parse query '<table cellspacing="0">
     <tbody>
      <tr>
       <th class="column">Vendedor</th>
       <th class="column">Preço</th>
       <th class="column">Classificação do vendedor</th>
      </tr>
      <tr class="seller-row-alt">
       <td class="column"><a href="/url?client=ca-google-print&amp;format=googleprint&amp;num=0&amp;id=ADxFDwAAQBAJ&amp;q=http://www.fnac.com.br/Product.aspx%3FidProduct%3D8583938571&amp;usg=AFQjCNF-YuEIjY72xQEsOlo2iWecFjBeQg" dir="ltr">FNAC</a></td>
       <td class="column" style="text-align:right;"><span class="noprice">Sem preço</span></td>
       <td class="column"><span class="norating">Sem avaliação</span></td>
      </tr>
      <tr>
       <td class="column"><a href="/url?client=ca-google-print&amp;format=googleprint&amp;num=0&amp;id=ADxFDwAAQBAJ&amp;q=http://www.livrariacultura.com.br/scripts/cultura/catalogo/busca.asp%3Ftipo_pesq%3Disbn%26palavra%3D8583938571&amp;usg=AFQjCNHNKD6NuYjhtd0SjqcUfXDQ38VtKw" dir="ltr">Livraria Cultura</a></td>
       <td class="column" style="text-align:right;"><span class="noprice">Sem preço</span></td>
       <td class="column"><span class="norating">Sem avaliação</span></td>
      </tr>
      <tr class="seller-row-alt">
       <td class="column"><a href="/url?client=ca-google-print&amp;format=googleprint&amp;num=0&amp;id=ADxFDwAAQBAJ&amp;q=http://www.livrarianobel.com.br/isroot/nobelBR/redireciona.asp%3FOrigem%3D443%26Produto%3D8583938571&amp;usg=AFQjCNHawUCwy-4ZsjQGLm56bkxq0seB7A" dir="ltr">Livraria Nobel</a></td>
       <td class="column" style="text-align:right;"><span class="noprice">Sem preço</span></td>
       <td class="column"><span class="norating">Sem avaliação</span></td>
      </tr>
      <tr>
       <td class="column"><a href="/url?client=ca-google-print&amp;format=googleprint&amp;num=0&amp;id=ADxFDwAAQBAJ&amp;q=http://www.livrariasaraiva.com.br/produto/produto.dll/detalhe%3Futm_source%3Dbooksearch%26utm_medium%3Dreferral%26utm_campaign%3DBookSearch%26ISBN%3D9788583938576&amp;usg=AFQjCNETqtdkuM8fyEjDq_oAJcvQtx4N2Q" dir="ltr">Livraria Saraiva</a></td>
       <td class="column" style="text-align:right;"><span class="noprice">Sem preço</span></td>
       <td class="column"><span class="norating">Sem avaliação</span></td>
      </tr>
      <tr class="seller-row-alt">
       <td class="column"><a href="/url?client=ca-google-print&amp;format=googleprint&amp;num=0&amp;id=ADxFDwAAQBAJ&amp;q=http://www.submarino.com.br/busca%3Fq%3D8583938571%26dep%3Disbn&amp;usg=AFQjCNF_9tWWSx5wL1-43tubUPW2MA2rww" dir="ltr">Submarino</a></td>
       <td class="column" style="text-align:right;"><span class="noprice">Sem preço</span></td>
       <td class="column"><span class="norating">Sem avaliação</span></td>
      </tr>
      <tr>
       <td class="column"><a href="/url?client=ca-google-print&amp;format=googleprint&amp;num=0&amp;id=ADxFDwAAQBAJ&amp;q=https://www.amazon.com.br/Arduino-UNO-Fundamentos-aplica%25C3%25A7%25C3%25B5es-Eletroeletr%25C3%25B4nica-ebook/dp/B078SZ3H77%3Fsource%3Dps-sl-shoppingads-lpcontext%26psc%3D1&amp;usg=AFQjCNEHAUdCLmhLSqZzY0rEaSzs12BdEA" dir="ltr">Amazon.com.br - Seller</a></td>
       <td class="column" style="text-align:right;"><span class="price">R$&nbsp;33,90</span></td>
       <td class="column"><span class="norating">Sem avaliação</span></td>
      </tr>
     </tbody>
    </table>': unexpected token at '<table cellspacing="0">
     <tbody>
      <tr>
       <th class="column">Vendedor</th>
       <th class="column">Preço</th>
       <th class="column">Classificação do vendedor</th>
      </tr>
      <tr class="seller-row-alt">
       <td class="column"><a href="/url?client=ca-google-print&amp;format=googleprint&amp;num=0&amp;id=ADxFDwAAQBAJ&amp;q=http://www.fnac.com.br/Product.aspx%3FidProduct%3D8583938571&amp;usg=AFQjCNF-YuEIjY72xQEsOlo2iWecFjBeQg" dir="ltr">FNAC</a></td>
       <td class="column" style="text-align:right;"><span class="noprice">Sem preço</span></td>
       <td class="column"><span class="norating">Sem avaliação</span></td>
      </tr>
      <tr>
       <td class="column"><a href="/url?client=ca-google-p
D/Error: ERR: exClass=org.jsoup.select.Selector$SelectorParseException
    ERR: exMsg=Could not parse query '<table cellspacing="0">
     <tbody>
      <tr>
       <th class="column">Vendedor</th>
       <th class="column">Preço</th>
       <th class="column">Classificação do vendedor</th>
      </tr>
      <tr class="seller-row-alt">
       <td class="column"><a href="/url?client=ca-google-print&amp;format=googleprint&amp;num=0&amp;id=ADxFDwAAQBAJ&amp;q=http://www.fnac.com.br/Product.aspx%3FidProduct%3D8583938571&amp;usg=AFQjCNF-YuEIjY72xQEsOlo2iWecFjBeQg" dir="ltr">FNAC</a></td>
       <td class="column" style="text-align:right;"><span class="noprice">Sem preço</span></td>
       <td class="column"><span class="norating">Sem avaliação</span></td>
      </tr>
      <tr>
       <td class="column"><a href="/url?client=ca-google-print&amp;format=googleprint&amp;num=0&amp;id=ADxFDwAAQBAJ&amp;q=http://www.livrariacultura.com.br/scripts/cultura/catalogo/busca.asp%3Ftipo_pesq%3Disbn%26palavra%3D8583938571&amp;usg=AFQjCNHNKD6NuYjhtd0SjqcUfXDQ38VtKw" dir="ltr">Livraria Cultura</a></td>
       <td class="column" style="text-align:right;"><span class="noprice">Sem preço</span></td>
       <td class="column"><span class="norating">Sem avaliação</span></td>
      </tr>
      <tr class="seller-row-alt">
       <td class="column"><a href="/url?client=ca-google-print&amp;format=googleprint&amp;num=0&amp;id=ADxFDwAAQBAJ&amp;q=http://www.livrarianobel.com.br/isroot/nobelBR/redireciona.asp%3FOrigem%3D443%26Produto%3D8583938571&amp;usg=AFQjCNHawUCwy-4ZsjQGLm56bkxq0seB7A" dir="ltr">Livraria Nobel</a></td>
       <td class="column" style="text-align:right;"><span class="noprice">Sem preço</span></td>
       <td class="column"><span class="norating">Sem avaliação</span></td>
      </tr>
      <tr>
       <td class="column"><a href="/url?client=ca-google-print&amp;format=googleprint&amp;num=0&amp;id=ADxFDwAAQBAJ&amp;q=http://www.livrariasaraiva.com.br/produto/produto.dll/detalhe%3Futm_source%3Dbooksearch%26utm_medium%3Dreferral%26utm_campaign%3DBookSearch%26ISBN%3D9788583938576&amp;usg=AFQjCNETqtdkuM8fyEjDq_oAJcvQtx4N2Q" dir="ltr">Livraria Saraiva</a></td>
       <td class="column" style="text-align:right;"><span class="noprice">Sem preço</span></td>
       <td class="column"><span class="norating">Sem avaliação</span></td>
      </tr>
      <tr class="seller-row-alt">
       <td class="column"><a href="/url?client=ca-google-print&amp;format=googleprint&amp;num=0&amp;id=ADxFDwAAQBAJ&amp;q=http://www.submarino.com.br/busca%3Fq%3D8583938571%26dep%3Disbn&amp;usg=AFQjCNF_9tWWSx5wL1-43tubUPW2MA2rww" dir="ltr">Submarino</a></td>
       <td class="column" style="text-align:right;"><span class="noprice">Sem preço</span></td>
       <td class="column"><span class="norating">Sem avaliação</span></td>
      </tr>
      <tr>
       <td class="column"><a href="/url?client=ca-google-print&amp;format=googleprint&amp;num=0&amp;id=ADxFDwAAQBAJ&amp;q=https://www.amazon.com.br/Arduino-UNO-Fundamentos-aplica%25C3%25A7%25C3%25B5es-Eletroeletr%25C3%25B4nica-ebook/dp/B078SZ3H77%3Fsource%3Dps-sl-shoppingads-lpcontext%26psc%3D1&amp;usg=AFQjCNEHAUdCLmhLSqZzY0rEaSzs12BdEA" dir="ltr">Amazon.com.br - Seller</a></td>
       <td class="column" style="text-align:right;"><span class="price">R$&nbsp;33,90</span></td>
       <td class="column"><span class="norating">Sem avaliação</span></td>
      </tr>
     </tbody>
    </table>': unexpected token at '<table cellspacing="0">
     <tbody>
      <tr>
       <th class="column">Vendedor</th>
       <th class="column">Preço</th>
       <th class="column">Classificação do vendedor</th>
      </tr>
      <tr class="seller-row-alt">
       <td class="column"><a href="/url?client=ca-google-print&amp;format=googleprint&amp;num=0&amp;id=ADxFDwAAQBAJ&amp;q=http://www.fnac.com.br/Product.aspx%3FidProduct%3D8583938571&amp;usg=AFQjCNF-YuEIjY72xQEsOlo2iWecFjBeQg" dir="ltr">FNAC</a></td>
       <td class="column" style="text-align:right;"><span class="noprice">Sem preço</span></td>
       <td class="column"><span class="norating">Sem avaliação</span></td>
      </tr>
      <tr>
       <td class="column"><a href="/url?client=ca-google-print&amp;format=googleprint&amp;num=0&amp;id=ADxFDwAAQBAJ&amp;q=http://www.livrariacultura.com.br/scripts/cultura/catalogo/busca.as
    ERR: file=QueryParser.java
    ERR: class=org.jsoup.select.QueryParser
    ERR: method=findElements line=209
    ERR: stack=org.jsoup.select.Selector$SelectorParseException: Could not parse query '<table cellspacing="0">

Я просто использую kotlin в этом Android проекте. Заранее спасибо.

...