Projet : Crawler de site pour mise en cache chez Fasterize

Nouveau WRInaute
Hello à tous,

Un de mes sites (sous prestashop) utilise actuellement le système de mise en cache de Fasterize. Cela permet de décharger considérablement mon serveur et permet donc un chargement beaucoup plus rapide des pages.

Toutes fois, dès qu'une modification est effectuée sur le site, je dois procéder à une remise en cache des URLs concernées en appelant l'URL via une API proposée par Fasterize avec quelques paramètres.

Cette procédure est actuellement manuelle et très lourde à gérer. J'aimerais pouvoir créer un Crawler qui va donc parcourir tout mon site, en extraire toutes les URLs. Elles seront alors stockées dans une BDD ou encore dans un CSV avec quelques champs comme l'URL, la date, la réponse de l'API. L'étape suivante s'est d'appeler les URLs, avec différents useragent (iPhone, Mozilla/5.0).

Enfin, on pourra aussi optimiser le programme afin par exemple de :

- ne remettre en cache qu'une liste données d'URLs (fournies depuis un CSV)
- ne remettre en cache que les URLs pour un useragent
- ne remettre en cache que les nouvelles URLs
- ne remettre en cache que les URLs qui ont retourné une erreur
- création de stats

Je n'ai encore jamais fait ce type de programme et ne sait pas par quoi commencer.
Avez vous des idées, pistes svp ?

Merci
 
WRInaute accro
Pistes:
- https://scrapy.org/
- https://doc.ubuntu-fr.org/wget
- https://buzut.fr/comment-creer-un-crawler-web-en-php/
- http://subinsb.com/how-to-create-a-simple-web-crawler-in-php
- https://murze.be/2015/11/building-a-crawler-in-php/
- [...]

NB: C'est dommage de devoir crawler pour mettre en cache. De plus il y a moyen d'optimiser en mettant du cache en amont (c-à-d pas uniquement l'output).
A peu près tout ce que fait Fasterize est faisable avec Webpack/Gulp/...

There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.
Src: https://twitter.com/codinghorror/status/506010907021828096

C'est vrai que ton site https://www.rolleco.fr/ est super rapide
 
Nouveau WRInaute
Merci =)

Je me penchait justement sur Scrapy pour un autre dossier, ayant en plus quelques VM sous Vagrant et Python sur ma station ça pourrait peut être le faire. Cela semble assez puissant et offre de nombreuses possibilités pour la création de bases de données mais pas que [...]

Concernant le parcours total du site, c'est en effet dommage et c'est pour cela que j'ai créé un petit export des pages nécessitant une mise en cache. Par exemple : les produits modifiés récemment. Un crawl complet surchargera le site et représente une perte de temps.
 
Discussions similaires
Haut