Extraire les URLs d'une page web

Bonjour,

En 4DV17, quel serait le meilleur moyen d’extraire les liens (a href) à partir de l’URL d’une page web ?

Pour l’instant, j’utilise la méthode la moins propre, à savoir :

  1. HTTP Get pour récupérer la page complète dans une variable texte
  2. Manipulations à partir de “Position”, “Sous-chaine”, etc…

Mais bien entendu, c’est ce qui fait de pire, et le résultat est ultra-lourdingue et peu fiable.

Merci

You could use a program called “Tidy” that converts HTML to XHTML. It might be easier to parse XML than HTML; you can use DOM XML commands for example.

4D plugin port here:

Maybe the offline web area (new in 18 R3) and some JavaScript would make an interesting solution.

Thank you @Keisuke_Miyako I’ll take a look right now.

@Keisuke_Miyako : sorry, I installed your plugin, but could not find any documentation on how to use it.

I only got a new plugin command “Tidy” in my 4D app.

Could you tell me where I could find any help ?

(Sorry if the answer is obvious)

Je peux te conseiller d’utiliser une Regex. Tu peux utiliser notre composant AJ_Tools_Regex

On livre avec le composant un Lab qui te permettra de tester différents pattern. Mais en l’occurence on fourni avec le Lab un exemple d’extraction d’url.

Merci, j’avais effectivement pensé aux regex.

Tu m’as convaincu, je vais passer outre ma répugnance naturelle pour ces sales bêtes et regarder de ce côté là :slight_smile:

Merci

1 Like

Basic example in the sample project.

List of options here.

Thank you @Keisuke_Miyako, I did not get that Tidy’s first parameter is a blob.
Now it does something, but I think it won’t help me.
The website I’m trying to parse (this URL) seems to have too much errors in its source code :

Moreover, I don’t see how Tidy is supposed to return an XML structure.

I’ve posted a small example using your URL.

Many thanks for your time @Keisuke_Miyako, it’s really nice of you.
I’ll take a look closely at your code and get you in touch.