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.
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 HTTPbs4
, habituellement reconnu sous le nom de BeautifulSoup, qui permet de traiter le code HTML reçu avecrequests
et d’extraire les éléments qui nous intéressenturllib
, 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, etfix_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 !