2011-10-24 7 views
1

Disons que je veux extraire des données à partir d'une page Web avec le balisage suivant:Extraire du contenu HTML en utilisant YQL?

<table> 
    <tr> 
    <td><a href="Link 1">Column 1 Text</a></td> 
    <td>Column 2 Text</td> 
    <td>Column 3 Text</td> 
    </tr> 
    <tr> 
    <td><a href="Link 2">Column 1 Text</a></td> 
    <td>Column 2 Text</td> 
    <td>Column 3 Text</td> 
    </tr> 
    ... 
</table> 

à JSON Format:

[ 
    { 
    link: 'Link 1', 
    text: 'Column 1 Text', 
    data: 'Column 3 Text' 
    }, 
    { 
    link: 'Link 2', 
    text: 'Column 1 Text', 
    data: 'Column 3 Text' 
    } 
] 

Pouvons-nous faire avec YQL? Si oui alors s'il vous plaît donnez-moi un exemple de requête.

Toute aide serait appréciée!

Répondre

1

Voici une requête qui est un bon point de départ, en utilisant la table HTML avec une requête XPath (voir Extracting HTML Content With XPath pour plus de détails sur cette technique):

select * from html where url="http://cantoni.org/test/table.html" and xpath='//table/tr'

qui produit des résultats JSON comme ceci:

{ 
"query": { 
    "count": 2, 
    "created": "2012-01-06T20:16:46Z", 
    "lang": "en-US", 
    "results": { 
    "tr": [ 
    { 
    "td": [ 
     { 
     "a": { 
     "href": "Link%201", 
     "content": "Column 1 Text" 
     } 
     }, 
     { 
     "p": "Column 2 Text" 
     }, 
     { 
     "p": "Column 3 Text" 
     } 
    ] 
    }, 
    { 
    "td": [ 
     { 
     "a": { 
     "href": "Link%202", 
     "content": "Column 1 Text" 
     } 
     }, 
     { 
     "p": "Column 2 Text" 
     }, 
     { 
     "p": "Column 3 Text" 
     } 
    ] 
    } 
    ] 
    } 
} 
}
Questions connexes