2017-06-08 2 views
0

J'essaie de gratter cette table au milieu, c'est la seule chose dont j'ai besoin de ce web, et c'est aussi la seule chose que je peux ' t obtenir à partir de là. après quelques tentatives, j'ai créé ce petit code qui gratte TOUS les divs html, s'il vous plaît dites-moi ce que je fais mal et ce que vous pensez. merci! (En bas: l'image de la partie de cette page que je suis à la recherche)Impossible de trouver et de gratter certaines Divs en utilisant Simple Html Dom (PHP)

<?php 
include_once("simple_html_dom.php"); 
$link = 'http://www.oddsportal.com/soccer/argentina/copa-argentina/colon-santa-fe-ind-rivadavia-bTD4Oj2C/?r=1#1X2;2'; 

$html = file_get_html($link); 
$table = true; 
$i = 0; 

while ($table) 
{ 
$table = $html->find("div",$i++); 
echo $table;  

} 
?> 

the table

Merci encore :)

+0

Que voulez-vous exactement à gratter de la table? – oguzhancerit

+0

toutes les données (tous les tr et td) mais ressemble à ce qu'ils n'ont pas accès à cette table et cette table seulement. – AvivS

+0

J'ai mis à jour ma réponse. – oguzhancerit

Répondre

0

Mise à jour Réponse

Table en le site Web que vous voulez gratter, met la table avec des appels ajax lorsque la page a été chargée. Alors; quand vous grattez html, il n'y a pas de table dedans.

Vous pouvez tous simuler leurs appels ajax mais cela sera plus difficile pour vous. Ouvrez votre onglet réseau sur Chrome et analysez toutes les requêtes, lorsque vous avez trouvé la requête réelle pour obtenir la table sur la page, grattez-la.


Vieille réponse

Je suppose que; vous grattez la table correctement. Après cela, vous avez besoin d'une boucle pour gratter chaque div dans la table.

foreach($html->find('tr div.l a') as $element) { 
    echo $element->href; 
} 

Vous devez adapter le code ci-dessus à votre code.

complet Code

<?php 
    include_once("simple_html_dom.php"); 
    $link = 'http://www.oddsportal.com/soccer/argentina/copa-argentina/colon-santa-fe-ind-rivadavia-bTD4Oj2C/?r=1#1X2;2'; 

    $html = file_get_html($link); 
    foreach($html->find('tr div.l a') as $element) { 
    echo $element->href; 
    } 
?> 
+0

le problème est que je n'ai pas gratté la table, mais merci, bien sûr utiliser cette boucle après un mauvais succès. – AvivS

+0

@AvivS J'essaie maintenant sur mon pc maintenant. – oguzhancerit

+0

Quelle est votre opinion la plus simple? J'ai essayé d'analyser la requête mais sans succès. il est logique que c'est parce que l'ajax, mais comment puis-je demander le html après ajax chargé? – AvivS