ID가없는 구문 분석 HTML 테이블

mmayer :

다음 주소에서 값을 얻으려고 노력 메신저 http://www.dolarhoy.com/를 다음 코드를 사용하여 :

  try {
     URL urlPagina = new URL(url);
     URLConnection urlConexion = urlPagina.openConnection();
     urlConexion.connect();

     // Creamos el objeto con el que vamos a leer
     BufferedReader lector = new BufferedReader(new InputStreamReader(
           urlConexion.getInputStream(), "UTF-8"));
     String linea = "";
     String contenido = "";

     while ((linea = lector.readLine()) != null) {
        resultado.append(String.valueOf(linea));
        resultado.append("\n");
     }

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

  System.out.println("Contenido : \n\n" + resultado.toString());
  return resultado.toString();

}

나는 SOMER 다른 코드 사이에이를 얻을 :

<td width='113' height='25'>

  <div align='center'>

    <font face='Verdana, Arial, Helvetica, sans-serif' color='#00ff00' size='2'>ACTUALIZADO</font>

  </div>

</td>

<td width='179' height='25'>

  <div align='center'>

    <font face='Verdana, Arial, Helvetica, sans-serif' color='#00ff00' size='2'><b>7/08/2018&nbsp;

    14:53 AR</b></font>

  </div>

</td>

<td width='82' height='25'>

  <div align='center'>

    <font face='Verdana, Arial, Helvetica, sans-serif' color='#00ff00' size='2'>COMPRA</font>

  </div>

</td>

<td width='110' height='25'>

  <div align='center'>

    <font face='Verdana, Arial, Helvetica, sans-serif' color='#000000' size='2'><b><font face='Courier New, Courier, mono' color='#FFCC00' size='4'>$&nbsp;

    26.93</font></b></font>

  </div>

</td>

<td width='85' height='25'>

  <div align='center'>

    <font face='Verdana, Arial, Helvetica, sans-serif' color='#00ff00' size='2'>VENTA</font>

  </div>

</td>

<td width='110' height='25'>

  <div align='center'>

    <font face='Verdana, Arial, Helvetica, sans-serif' color='#000000' size='2'><b><font face='Courier New, Courier, mono' color='#FFCC00' size='4'>$&nbsp;

    27.93</font></b></font>

  </div>

</td>

하지만 난 HTML 테이블 ID가없는 것을 알 수있다.

내가 받아야하는 값은 이미지를 강조 하나입니다.

여기에 이미지 설명을 입력

나는 HTML 코드 "27.93"의 위에 표시된 값이 필요합니다. (필자는 태그 사이의 내용이 필요하므로이 값에 따라 다름)

나는 어떤 도움 / 솔루션을 주셔서 감사합니다. 감사!

닫기 :

당신이 이런 식으로 뭔가를 할 수 jsoup 의사 선택기를 사용하여 :

    Document doc = Jsoup.connect("http://www.dolarhoy.com/").get();
    //select div element that contains specific text and is direct descenant of body 
    Element title = doc.select("body > div:contains(PROMEDIO DE COTIZACIONES DE PIZARRAS AL PÚBLICO RELEVADAS POR)").first();
    //select next sibling element with summary
    Element summary = title.nextElementSibling();
    //select last cell with data needed
    String amount = summary.select("td").last().text();
    System.out.println(amount);


    //same as above - one-liner
    System.out.println(doc.select("body > div:contains(PROMEDIO DE COTIZACIONES DE PIZARRAS AL PÚBLICO RELEVADAS POR) + div td:last-child").text());

자세한 내용은 여기를 찾을 수 있습니다 https://jsoup.org/cookbook/extracting-data/selector-syntax

추천

출처http://43.154.161.224:23101/article/api/json?id=221305&siteId=1