Liens markdown et titre avec Python

Mise en situation

J’ai une longue liste d’URLs que je souhaite utiliser dans une page de notes sous la forme de liens Markdown.

Je veux créer des liens facilement identifiables en Markdown avec Python, et pour ce faire utiliser le titre des pages d’accueil des sites web.

Python pour produire les liens Markdown

Je me suis donc fait un petit programme en Python qui prend une URL en entrée, la normalise et extrait le titre de la page, pour finalement retourner un lien en Markdown.

Librairies utilisees pour extraire des informations depuis une URL avec Python
Librairies utilisees pour extraire des informations depuis une URL avec Python

Ce programme utilise les librairies Python suivantes pour extraire l’information qui produit les liens Markdown:

  • requests, qui permet d’appeler des services web via le protocole HTTP
  • bs4, habituellement reconnu sous le nom de BeautifulSoup, qui permet de traiter le code HTML reçu avec requests et d’extraire les éléments qui nous intéressent
  • urllib, qui permet d’extraire des éléments depuis une URL, tel que des paramètres, des fragments ou des éléments du nom de domaine.
  • plac, qui fournit une interface simple en ligne de commande pour les fonctions Python

Le programme est composé de deux fonctions principales,

  • main, où le code définissant la logique du programme est écrit, et
  • fix_url, qui permet de corriger divers éléments dans les URLs tel que spécifier le protocole HTTP ou HTTPS en préfixe.

De plus, la fonction d’entrée n’est plus directement le main, mais un appel via plac:

if __name__ =='__main__':
    plac.call(main)

Le programme s’appelle comme suit:

python url_to_markdown.py "https://git.francoispelletier.org/partage/url_to_markdown"

Et retourne:

[francois/url_to_markdown: URL vers lien en markdown -  url_to_markdown - GitLab](https://git.francoispelletier.org/partage/url_to_markdown)

Pour le faire avec une liste d’URLs, on utilise xargs sous GNU/Linux ou macOS. Pour les utilisateurs Windows, la suite MSYS2 vous donne accès à ces utilitaires très pratiques !

cat ma_liste_d_urls | xargs -I{} python url_to_markdown.py {}

Voici le lien vers le code du programme:

https://git.francoispelletier.org/partage/url_to_markdown

Conclusion

Dans ce billet, j’ai montré comment écrire un programme simple en Python qui effectue la documentation d’URLs automatiquement vers des liens Markdown !

Pour recevoir des astuces mensuelles pour apprendre à utiliser la ligne de commande comme un pro sur ton système, tu dois t’inscrire à ma newsletter mensuelle !

Abonnes-toi dès maintenant à ma liste de courriel mensuelle.