Voulez-vous saisir la liste des joueurs de http://www.atpworldtour.com/Rankings/Singles.aspxPHP page externe
Il y a une table avec classe "bioTableAlt"
, nous devons saisir toutes les <tr>
après la première (classe "bioTableHead"
), qui sert à en-tête de table.
contenu voulu ressemble à:
<tr class="oddRow">
<td>2</td>
<td>
<a href="/Tennis/Players/Top-Players/Novak-Djokovic.aspx">Djokovic, Novak</a>
(SRB)
</td>
<td>
<a href="/Tennis/Players/Top-Players/Novak-Djokovic.aspx?t=rb">6,905</a>
</td>
<td>0</td>
<td>
<a href="/Tennis/Players/Top-Players/Novak-Djokovic.aspx?t=pa&m=s">21</a>
</td>
</tr>
<tr>
<td>3</td>
<td>
<a href="/Tennis/Players/Top-Players/Roger-Federer.aspx">Federer, Roger</a>
(SUI)
</td>
<td>
<a href="/Tennis/Players/Top-Players/Roger-Federer.aspx?t=rb">6,795</a>
</td>
<td>0</td>
<td>
<a href="/Tennis/Players/Top-Players/Roger-Federer.aspx?t=pa&m=s">21</a>
</td>
</tr>
Je pense que la meilleure idée est de créer un array()
, faire de chaque <tr>
une ligne unique et jeter le code final au fichier list.txt
, comme:
Array (
[2] => stdClass Object (
[name] => Djokovic, Novak
[country] => SRB
[rank] => 6,905
)
[3] => stdClass Object (
[name] => Federer, Roger
[country] => SUI
[rank] => 6,795
)
)
Nous analysons chaque :
[2]
est un nombre de premier<td>
[name]
est du texte du lien à l'intérieur seconde<td>
[country]
est une valeur comprise entre (...) dans la deuxième<td>
[rank]
est le texte du lien à l'intérieur troisième<td>
Dans le fichier final list.txt
devrait contenir un array()
avec ~ 100 IDS (nous prenons la page avec les 100 premiers joueurs).
De plus, sera incroyable, si nous faisons un petit correctif pour chaque [name]
avant de l'ajouter à un array()
- « Federer, Roger » devrait être converti en « Roger Federer » (juste attraper le mot avant la virgule , jetez-le à la fin de la ligne).
Merci.
duplication possible de [Comment obtenir une chaîne de HTML avec regex?] (Http://stackoverflow.com/questions/3298293/how-to-get-string-from-html-with-regex) et [expression reqular problème en php] (http://stackoverflow.com/questions/3382244/reqular-expression-problem-in-php/3382359#3382359) et [un couple d'autres] (http://stackoverflow.com/search?q= html + dom + php) - notez que ceci ne veut pas dire que vous devriez utiliser Regex, mais les solutions DOM suggérées. – Gordon
@Gordon - ce sujet est très différent – James
non ce n'est pas différent. Vous demandez comment extraire un noeud ou un ensemble de noeuds spécifique d'une page Web. Cela est fait avec un analyseur DOM et XPath et il y a beaucoup d'exemples dans les trois liens ci-dessus. La seule chose qu'ils ne vous diront pas est comment appliquer le correctif de nom que vous demandez. – Gordon