Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Aiuto nello scaricare dati tabella HTML con XPath

    Ciao a tutti! Sto cercando di recuperare tutti i dati dalla tabella proveniente da questo sito: Clicca!
    Questa è la parte della pagina che mi interessa, corrisponde alla tabella.

    codice:
    
    <tbody>
      <tr>..</tr>
      <tr>
          <td class="tbl_black_n_1">1</td>
          <td class="tbl_black_n_1" nowrap="" align="center">23/07/14 08:10</td>
          <td class="tbl_black_n_1">
             <img src="http://www.betonews.com/img/SportId389.gif" width="10" height="10" border="0" alt="">
          </td>
          <td class="tbl_black_n_1"></td>
          <td class="tbl_black_n_1" nowrap="" align="center">BAK WS</td>
          <td class="tbl_black_n_1" nowrap="" align="right">M. Eguchi</td>
          <td class="tbl_black_n_1" align="center">-</td>
          <td class="tbl_black_n_1" nowrap="">Radwanska U. </td>
          <td class="tbl_black_n_1" align="center" title=" ">1,02</td>
          <td class="tbl_black_n_1" align="center">
          <td class="tbl_black_n_1" align="center" title=" "> </td>
          <td class="tbl_black_n_1" align="center">
          <td class="tbl_black_n_1" align="center" title=" ">55,00</td>
          <td class="tbl_black_n_1" align="center">
          <td class="tbl_black_n_1" align="right">86%</td>
          <td class="tbl_black_n_1" align="right">-</td>
          <td class="tbl_black_n_1" align="right">14%</td>
          <td class="tbl_black_n_1" align="center" title=" ">524.647</td>
          <td class="tbl_black_n_1" nowrap="">
              <a href="popup.asp?tp=2100&amp;lang=en&amp;idm=553759" target="_blank"><img src="http://www.betonews.com//img/i_betfair.gif" width="12" height="10" border="0" alt=""></a>
              <a href="popup.asp?tp=2110&amp;lang=en&amp;idm=553759" target="_blank"><img src="http://www.betonews.com//img/i_history.gif" width="12" height="10" border="0" alt=""></a>
          </td>
     </tr>
     <tr>..</tr>
     <tr>..</tr>
     <tr>..</tr>
     ...
     </tbody>
    
    Ci sono più di 100 gruppi <tr> che vorrei loopare per inserirli tutti in un array, successivamente in un database MYSQL.
    Questo è cioò che sono riuscito a metter giù.. ma c'è qualcosa che non va o che mi manca

    Codice PHP:
    <?php
    $url 
    'http://www.betonews.com/table.asp?tp=2001&lang=en&dd=23&dm=7&dy=2014&df=1&dw=3';

    $ch curl_init();

    curl_setopt($chCURLOPT_URL$url);
    curl_setopt($chCURLOPT_RETURNTRANSFERtrue);

    $response curl_exec($ch);

    curl_close($ch);

    $document = new DOMDocument();
    $document->loadHTML($response);

    $xpath = new DOMXPath($document);
    $expression '/html/body/table[2]/tbody/tr/td[2]/table/tbody/tr/td[2]/table/tbody/tr[2]/td/table/tbody/tr/td/table/tbody/tr[3]/td/table/tbody/tr';
    $rows $xpath->query($expression);

    $results = array();

    foreach (
    $rows as $row) {
        
    $result = array();

    */ ----> ??? 
    }

    Il risultato finale dovrebbe essere qualcosa del genere:

    codice:
    [0] => Array
            (
                [date] => 23/07/14 08:10
                [image] => http://www.betonews.com/img/SportId389.gif
                [team1] => M. Eguchi
                [team2] => Radwanska U.
                [1] => 1,02
                [x] => 0
                [2] => 55,00
                [1%] => 86%
                [x%] => 0
                [2%] => 14%
                [total] => 524.647
    
        )
    Grazie in anticipo a tutti!

  2. #2
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    Prova con questo codice, prendi tutti gli elementi con la stessa classe

    codice:
        $elements = $xpath->query(sprintf("//td[contains(@class, '%s')]", $name));
    Ultima modifica di linoma; 24-07-2014 a 11:40
    Per gli Spartani e Sparta usa spartan Il mio github

  3. #3
    Quote Originariamente inviata da linoma Visualizza il messaggio
    Prova con questo codice, prendi tutti gli elementi con la stessa classe

    codice:
        $elements = $xpath->query(sprintf("//td[contains(@class, '%s')]", $name));

    Ho risolto in questo modo:

    Codice PHP:
    $xpath = new DOMXPath($document);
    $expression '(//table[@cellpadding="3"])[1]/tr[position() > 1]';
    $rows $xpath->query($expression);

    $results = array();

    foreach (
    $rows as $row) {
      
    $result = array();
      
    $td $row->childNodes;
      
    $result["date"] = $td->item(2)->nodeValue;
      
    $result["image"] = $td->item(4)->firstChild->attributes->getNamedItem("src")->nodeValue;
      
    $result["team1"] = $td->item(10)->nodeValue;
      
    $result["team2"] = $td->item(12)->nodeValue;
      
    $result["1"] = $td->item(14)->nodeValue;
      
    $result["x"] = $td->item(16)->nodeValue;
      
    $result["2"] = $td->item(18)->nodeValue;
      
    $result["1%"] = $td->item(20)->nodeValue;
      
    $result["x%"] = $td->item(22)->nodeValue;
      
    $result["2%"] = $td->item(24)->nodeValue;
      
    $result["total"] = $td->item(26)->nodeValue;

      
    $results[] = $result;


    Non riesco però ad ottenere l'href del primo elemento <a> dell'ultimo <td> di ogni riga della tabella, per intenderci, nel mio esempio: "popup.asp?tp=2100&amp;lang=en&amp;idm=553759"

    Grazie

Tag per questa discussione

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.