Automatiser quelques taches récurrentes (parser + utilisation des données)

toki127
Invité n'ayant pas de compte PHPfrance

13 janv. 2016, 19:16

Bonjour à tous,

Je souhaiterai automatiser quelques taches que je réalise tous les jours et qui me ferait gagner un temps fou.

Etant novice en php, je préfère vous demander bien humblement de l'aide, pour essayer de faire bien et propre (pas un truc bancale… ou pas trop!)

Je vais essayer d'être concis et clair :
OBJECTIFS :
- sur une page A, récupérer des informations dans la page : des liens vers des pages B[x], C[x] et rarement D[x]
- sur chacune de ces pages BCD[x], rechercher des valeurs numériques dans un tableau, et pour certaines valeurs, suivre un (encore) un lien B[x][y]
- sur ces pages BCD[xy], récupérer une seule valeur, et la comparer à celle recueillie à l'étape précédente
- en fonction de la comparaison, mettre dans une chaine résultat final deux chaines de texte que l'on doit récupérer au niveau Bx

Il y aurait quelques améliorations à ajouter, mais cela me semble bien pour un début. :-)

ACTUELLEMENT :
- je charge le code source de la page A aver file_get_contents
- je cherche les valeurs qui m'intéressent avec preg_match_all, mais j'arrive à récupérer quelques chaines, mais je n'arrive pas à avoir les liens (des href="abcde").

Merci d'avance pour les conseils que vous pourrez me donner, et le temps que vous pourrez me consacrer.

Bonne soirée!

Mammouth du PHP | 2703 Messages

13 janv. 2016, 19:19

donne des exemples des chaines que tu récupères, et pour lesquelles tu n'arrives pas à récupérer certaines portions.

toki127
Invité n'ayant pas de compte PHPfrance

13 janv. 2016, 19:27

exemple de portion de la page A :

Code : Tout sélectionner

<a class="xxx" id="xyz123" href="[b][u]le_lien_à_récupérer[/u][/b]" style="xyz123">123 <div class="yyy"> <span> 12h00 (chaine qui pourrait m'intéresser) </span> <span class="zzz">
Penses tu sue preg_match_all suit l'outil adapté?

En tout cas merci de ton aide, et pour ta rapidité!

Mammouth du PHP | 2703 Messages

13 janv. 2016, 19:31

xyz123 est fixe ?
ou se trouve le </a> ?

Petit nouveau ! | 2 Messages

13 janv. 2016, 19:37

xyz123 n'est pas fixe. En fait, xyz chaine de caractère fixe, mais 123, un nombre qui évolue.

le </a> se trouve très loin… notamment plusieurs images

Mammouth du PHP | 1967 Messages

13 janv. 2016, 23:46

J'utiliserai le DOM de php, puissant et pratique mais un peu plus complexe à mettre en place.

Sinon il faut que tu trouve la partie fixe la plus proche de ton href par exemple class="xxx" ou id="xyz (si ces 3 lettres sont fixe) et ensuite chercher le href aec strpos et en offset la position de class="xxx" puis le " le plus proche de ton href, etc.
Je n'utilisera pas preg_match car trop de variable non contrôlé.
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Petit nouveau ! | 2 Messages

16 janv. 2016, 18:07

bonjour à tous,

Merci pour les premiers retours.
Je me suis donc renseigné sur simple_html_DOM. Il y a effectivement quelques fonctions qui m'intéressent.

Je récupère bien tous les liens qui m'intéressent. J'arrive à les afficher. Par contre, ce sont des liens relatifs et donc quand je cherche à les concaténer à l'adresse de la page et à afficher le résultat, il affiche la page de base, avec en haut en clair, le lien que j'ai récupéré (et non la nouvelle page)… :(((

Pour simplifier la suite des opérations, j'aimerai récupéré deux éléments sur cette page :
Dans les <div> de class fixe de la page (ex : xyz) je souhaite récupérer :
- le lien href dont le texte en clair est "jkl" (car dans cette div fixe, il y a plusieurs liens, mais un seul m'intéresse)
- dans un <li> de class fixe, dans le texte "xxxxxxxxxx 15h30", je souhaiterai juste récupéré l'heure. La chaine xxxxxxxxx ne contient jamais de h, ce qui peut peut-être aidé à récupéré juste l'heure?
Je souhaiterai que ces deux éléments (lien / heure) soit associé dans un tableau…

Auriez vous quelques pistes?

Merci d'avance