En 17 ans de TH-cam j'ai dû lâcher 3 commentaires max, voici le 4ème : ta vidéo rassemble tout ce que je recherche, du contenu tech, le côté vlog slice of life, un montage ultra beau et de la bonne musique. Prend mon commentaire, mon pouce bleu et mon abo à ta chaîne, merci !
Pour avoir un temps de chargement rapide tu dois decoupler ton scrapper de ton site web, le scrapper remplit la base de donnée et le site lit la base. Bon courage pour tes prochains projets !
Et un truc tout con en complément du commentaire de cocadmin, avec cette solution tu peux rajouter de la pagination au lieu d'afficher les 50 films sur 1 seule pages, sinon continue, le projet est super !!
@@luhcaran tu peux même faire une demi pagination au onload (avec juste les visibles), une deuxième au scroll (tu charges toujours ceux qui vont apparaitre), et une 3e avec des boutons (page 1, 2, 3), c'est le plus opti découpé comme ça
หลายเดือนก่อน +11
Oww je n'y avait pas pensé mais c'est vrai que c'est vraiment bien comme idée ! je garde ca dans un coin de ma tête pour la mettre en place ☺ merci infiniment pour ton retour en tout cas !
หลายเดือนก่อน +4
@@luhcaran yes j'ai pensé à la pagination, le truc c'est que vu que j'affiche chaque fim puis les séances qui y sont associées, j'ai besoin d'avoir récupéré tous les films de tous les cinémas avant de pouvoir les afficher. Sinon je peux pas regrouper les horaires des cinémas par film 😅 Jsp si c'est clair ce que je raconte bruh
Beau projet bravo. En dehors du projet c'est ta première vidéo que je vois. Le montage est top, la fluidité, la voix, l'affichage du code, du site, franchement vraiment bien. Merci du partage
The fact that you used "Let It Happen" as a background song while admiting that you gave up on having a fast and more efficient web site is just so creative from you.
Superbe vidéo ! Et surtout surper beau site ! Pour ton problème d'optimisation, pourquoi ne pas faire une fonction python qui se déclenche tous les jours à une heure précise, qui récupère tous les données de tous les cinémas ? Comme ça ton affichage html ne se concentre que sur la base de donnée. Tu fais moins de requests, un seul scrapping par jour (ou alors 2/3 pour être encore plus précis.) Mais l'utilisateur ne déclencherais pas le scrapping et donc le site se chargerait beaucoup plus vite de son côté :) En tout cas, j'ai passé un superbe moment devant ta vidéo !
หลายเดือนก่อน +5
merci beaucoup pour ton retour ! Ah j'y avais pas pensé, c'est pas bête comme idée, j'vais me pencher dessus 😏
Avec Python et notamment pour le scrapping, je sais que beaucoup créés un service qui se déclenche toutes les x heures. Dans tous les cas, oui tu dois cacher des données. Attention toutefois, certains sites n’autorisent le caching de données surtout si elles sont scrappées. Après j’imagine qu’il faut un peu les processer avant…
franchement gg ! le projet est cool, rien que le fait d'arriver au bout d'un projet c'est déjà très bien, même si il comporte des défauts de toute façon tous les projets ont des défauts le montage est vraiment bien et la vidéo est agréable à regarder continue comme ça!!
Joli projet, ça peut être utile à plein de personnes ! Belle réal aussi, c'est clair et construit. Très agréable de voir la partie "Optimisation" aussi, pour se rendre mieux compte du vrai temps passé sur le projet Hâte de voir la suite !
Wow! fantastique vidéo - super storytelling, structure au top, montage au top.. c'est kiffant de voir quelqu'un de jeune partager ses projets / build in public comme ça ! Hâte de voir la suite!! Comme d'autres l'ont dit, imo le plus simple est de lancer ton script de scrapping à 23h par exemple et ne scraper que la journée J+8 (si tu es lundi soir, tu vas scrapper que lundi prochain sur allociné). Tu mets à jour ta BDD en fonction de ça, et ensuite le seul script python que tu as sur ton site c'est de savoir la date actuelle. > On est mardi ? Ok alors je prends de aujourd'hui à lundi prochain (que tu auras scrappé et ajouté qlq temps avant dans ta BDD). Comme tu l'as dit, tes données de films n'évoluent presque pas. Donc ton backend doit être mobile (BDD mise à jour quotidiennement), mais ton front lui renvoie une image "statique" de ton backend. Superbe projet en tous cas, ça redonne envie de reprendre des projets persos! Merci pour cette vidéo :)
Merci pour ta vidéo, ce qui est très intéressant est que mine de rien tu as expliqué facilement et d'une manière très compréhensible certaines techniques incontournables dans le développement Web mais qui sont souvent difficiles à comparer Vraiment merci 👍🔥
Hey! Je viens de découvrir ta chaîne via les recommandations TH-cam :) La DA est trop cool (mi-tuto mi-vlog) et j'ai adoré l'explication des tâches asynchrones avec la cuisine 👌 Très inspirant, je m'abonne et hâte de voir les prochaines vidéos !
Je viens de découvrir ta chaîne, cette vidéo est vraiment très cool ! La structure, le montage, la qualité, tout est top ! Continue comme ça, c'est génial 💪🏽
Super projet ! Le scraping n'est peut-être pas la méthode la plus optimale, mais honnêtement, bravo pour ta vidéo. On sent vraiment ta passion, ça donne un côté très sympa, un peu à la Amy Plant. C’est génial de voir ton processus en détail ! Continue sur cette lancée, Python est top pour commencer, même si tu pourrais rapidement trouver des limites avec Flask. Je te recommande d'explorer d'autres technologies par la suite. En tout cas, superbe vidéo, gros soutien à toi !
Hello ! je ne vais pas rajouter des conseils supplémentaires car il y a déjà beaucoup de bonnes idées dans les commentaires, par contre je te félicite pour ce beau montage et ce projet perso, j'adore ce genre de récit/aventure, continue comme ça :)
J'ai beaucoup apprécié la vidéo ! C'est la première que je vois, tu détailles bien les outils que tu utilises et tu expliques ton raisonnement, c'est vraiment top. Je m'abonne ! 😉
Je viens de te découvrir, ta vidéo est géniale, dans tous les points. Hyper claire, bien rythmée, bon son, le petit reportage dans Paris pour donner plus de contexte donne une belle respiration, et le choix des films est incroyable ! Je suis Product designer, j'ai suivi un Bootcamp full-stack en début d'année. Ce genre de projet est géniale pour rafraîchir les idées et comprendre un peu mieux certaines notions (asynchronisation) et c'est ultra motivant. Merci et bravo !
tu peux faire passer un cron tout les jours qui trigger ton scrapper et met à jours ta DB. A la fin tu te débrouille pour que ton front-end appel ton back-end qui lui tape ta DB (ton front-end ne doit jamais trigger directement ou indirectement ton scrapper). Pour un temps de chargement encore plus court tu peux aussi utiliser un framework qui pourrait te permettre de build ton front-end tout les jours et ensuite le servir de manière static ou encore faire un hybride avec du static pour tes contenus fixe et dynamique pour le dynamique (exemple: gatsby, next...). Bon courage pour la suite, ton projet est très cool. Je te précise aussi que si ton front-end est complètement static ça peut te permettre de le faire héberger gratuitement sur des services comme netlify (full static), vercel (hybride), etc.. et engendre de moindre coûts si tu monte en charge.
หลายเดือนก่อน +2
merci beaucoup pour ton commentaire ! je connaissais pas les cron mais je viens de checker rapido sur internet et ca m'a l'air vraiment pertinent ! je vais me pencher dessus. Même sur l'hébergement, j'ai pris le premier truc qui fonctionnait mais je vais me renseigner sur ce que tu viens de dire 😉 merci infiniment en tout cas :))
Je decouvre cette chaine et bravo pour le travail , c'est agréable a regarder et bien expliquer ! Tu à le code dans l'âme, surtout continue dans cette lancée ! Bon courage pour la suite !
Salut Solène, beau travail ! Tu devrais probablement mettre en place le scrapping via un cron job ou dans une pipeline ETL (tu peux utiliser un simple cron job ou des outils comme Apache Airflow). Concernant le cache, je te recommande d'utiliser Redis, qui est plus maintenable que le cache de Flask. Pour assurer une haute disponibilité, si besoin, tu peux mettre en place un load balancer afin de répartir les requêtes sur plusieurs instances de ton backend. En résumé : divise ton code en deux parties, une pour le cron et une pour l’application. Le cron s'exécute une fois par jour, stocke les données dans la base de données, et ton application utilise ces données pour afficher le contenu.
Super vidéo ! Juste un truc à faire attention c’est que le scrapping n'est pas autorisé sur la plupart des sites. Pour savoir si on y est autorisé, il faut que ce soit écrit explicitement dans les CGU. Dans la majorité des cas, si le site propose une api, c'est qu'il n'autorise pas le scrapping (car bah faut passer par l'API). Pour plus d'infos je t'invite à te renseigner sur Google directement pour savoir pourquoi etc..
Magnifique vidéo ! J’étais venu pour voir le background derrière le site et là tu donnes envie de faire des projets web et de se pencher sur l’es cinémas indépendants
Merci pour ta vidéo, pour ton optimisation, utilise ton scraper avec un schedule pour remplir ta base se donnée Firebase, puis construis ton site autour de Firebase. Garde l’avantage du temps réel avec ça et ton outil python ne servira qu’à populer ta database. Tu pourras ensuite utiliser en plus tous les autres outils Firebase comme analytics entre autre et debug :)
Pour récupérer la durée du film simplement et éviter une requête supplémentaire tu peux juste récupérer la div parent de ton élément durée, extraire et split le text et le parser. Dans le screen que tu montres à 5:13 tu peux récupérer le contenu de meta-body-info et ensuite isoler le seul élément de cette div ayant 'min' dans son texte. Ca sera forcément la durée de ton film et donc plus besoin de ta requête à TMDB
หลายเดือนก่อน +1
ahhhh pas con ca ! j'ai galéré la dessus mais si ca peut m'éviter de passer par TMDB ce serait incr
Super video je trouve que t'exprime super bien, tu es clair dans tes idées clair dans ta maniere de parler et surtout tu vas droit au but sans oublier des informations. C'est dynamique on ne voit pas le temps passer. La seule et unique remarque que j'aurais à faire c'est sur le volume des musiques en back qui sont legerement trop fortes. Hate de voir la suite
Merci pour cette belle vidéo!! Pour la problématique du temps de chargement il faut que le scraping ne soit pas en temps réel: Comme solution vous pouvez développer une sorte de programme "batch" dédié scraping et alimentation de la bd, le programme doit tourner la nuit, de préférence les heures où le site est moins fréquenté.
Hello ! Trop bien ! C'est vraiment super cool comme vidéo et je kiff le site je vais m'en servir c'est certain. D'ailleurs pour ma part je n'ai pas trop de chargement (à peine quelques secondes) :) PS: j'attends mk2 Odéon/St Michel 😛
Chouette vidéo! J'ai récemment fait du scraping pour répertorié des events sur mapbox aussi. Je l'ai fais en JS mais l'idée reste la même, le script qui scrape se lance en local tous les jours à 00h (ou quand je le souhaite). Les données que le script récolte sont envoyées vers Strapi (ou une DB, peu importe). Le script regarde également quels sont les events passé pour les archiver.
super vidéo !!!!! franchement je laisse rarement des commentaires mais ta vidéo est top top top et on reste du début à la fin (petit conseil ajoute de la pagination sur ton site ^^)
หลายเดือนก่อน
merci beaucoup 😊 J'avais pensé à la pagination mais vu que je regroupe les séances par film j'ai besoin d'avoir récupéré les données de tous les films de tous les cinémas avant de pouvoir les regrouper 😅 du coup au final sur le temps de chargement ca change pas grand chose la pagination
Hello ! Trop bien ta vidéo 🔥 Pour le temps de chargement peut être que tu pourrais faire du lazy loading. C'est à dire que tu fais ton scrapping que pour le premier jour de la semaine, puis à chaque fois que l'utilisateur change de jour, les infos ne sont récupérées que pour le jour en question. Couplé au cache ça peut être intéressant comme solution. Bien sur à voir si cette méthode est compatible avec ton algo. En tout cas continue ce que tu fais c'est génial !
bonjour Solène, Bravo pour ton boulot. Concernant ton problème de lenteur, la programmation des cinés change une fois par semaine, le mercredi. En plus, le nombre de cinés est connu. Donc tu peux tout a fait scrapper les données à jour/heure fixe pour les mettre dans ta base qui alimente ensuite ton site pour la semaine. Puis un scrap chasue jour pour vérifier qu'il n'y a pas eu de modif (déprogrammation ou ahout de séances d'un film qui marche bien...) Et là tu es vraiment en asynchrone.😊
หลายเดือนก่อน
Ah bien vu sur le mercredi ! j'y avais pas pensé mais je vais modifier dans ce sens ! merci beaucoup :))
Hello tres cool projet ! Une bonne stratégie serait de dissocier le scraper de ton front. De lancer le scraper toutes les 24h/48h par le biais d'un cron job pour venir remplir ta DB. Et bien sur ensuite t'alimentes ton front avec la db. Tu auras un super gain de perf.
หลายเดือนก่อน
merci beaucoup pour ton retour ! je connaissais pas les cron, et t'es pas le premier à faire remonter ça donc je vais me pencher dessus parce que ca a l'air vraiment pas mal
Super vidéo et projet. Idée d'amélioration sur l'ergonomie du site : transformer les horaires en hyperlien vers le site de réservation correspondant. Tu dois pouvoir stocker l'info en base de données via ton scrapping.
Salut ! Super vidéo, néanmoins attention, tu définis mal les fonctions asynchrones, ici avec ta métaphore tu parles plutôt de concurrence ou de multithreading. Pour vulgariser, une fonction asynchrone est une fonction qui permet à ton programme de continuer à faire d'autres tâches pendant que cette fonction fait son travail en arrière-plan. Pour filer la métaphore comme tu dis, ça serait plutôt, tant que la dinde cuit dans le four, je peux fort heureusement me permettre de lire un livre. Lire un livre n'a pas besoin que la dinde soit cuite. Par contre je peux difficilement mettre la table et couper les carottes en même temps haha, mais ça serait super pratique ! Et aussi pour ton soucis, conceptuellement, c'est tout bête :p Il suffit juste de détacher le processus de récupération de données (ton scraper) et la lecture (via ton API Flask) dans ta base de données. Ton scraper tourne sur ton serveur, il n'interfère pas directement avec le site, et ton API vient récupérer la liste des données. Comme ça plus de soucis, la lecture est très rapide, et le serveur s'occupe périodiquement de récupérer les données pour AlloCiné & l'API de films. Bon courage pour la suite, la qualité de la vidéo laisse à présager que du bon pour toi. :)
หลายเดือนก่อน +1
Hellooo, merci infiniment pour ton retour ! et bah écoute j'avais pas saisi la subtilité sur les fonctions asynchrones donc merci beaucoup ! c'est dommage j'aurai kiffé pouvoir couper les carottes en même tant que mettre la table ahah Yes sur le détachement du processus de scraping et lecture de base de données vous êtes plusieurs à le faire remonter et je vais me pencher dessus parce que la solution a l'air vraiment pas mal ! Merci beaucoup en tout cas ! c'est cool de voir que la commu dev s'entre-aide comme cela ☺🥹
Tu peux ajouter de la pagination pour réduire le temps de chargement. En tout cas super vidéo, très bien expliqué, et merci pour le repo github qui va bien aider le débutant que je suis haha !
Incroyable, pour l’optimisation il faut seulement ton algo de scraping qui tourne en permanence sur ton serveur et envoie à ton Firebase. Ton site fait seulement office d’affichage des données contenues sur la base de données. Tu passeras de 50 à 3 secondes maximum si ton serveur et tes clients ont une bonne connexion.
หลายเดือนก่อน
yes c'est pas bête, vous êtes pas mal à me le dire donc je pense que je vais l'implementer ! merci beaucoup en tout cas ☺
Bravo pour ce site, et c est vrai que ca manquait ce service. Selon tu devrais mettre aussi l année de sortie du film, comme pour la durée du film c est une info importante. Good job.
Joli projet ! Pour améliorer la vitesse de téléchargement, à mon avis, il serait judicieux de planifier le scraping du site côté serveur (c'est-à-dire ne pas le faire lorsque le client charge la page). Il serait préférable de le lancer toutes les heures, par exemple, afin d'alimenter la base de données. Ensuite, pour la gestion des images, il faudrait penser à réduire leur qualité sur la page web. Sinon, bravo pour une "débutante" dans le scraping, c'est vraiment génial !
L'astuce est de ne pas attendre la requête du client pour mettre à jour le site. Tu peux utiliser des libraires pour lancer automatiquement ton python tous les jours ou heures. Une fois le python exécuté, tu peux stocker le contenu de ta page (soit dans la base de données soit dans un json) et tu viens récupérer ces informations en JavaScript et les insérer dans ton html
Je te conseille de mettre à jour ta base de données avec un script (que tu executes tout les soirs par exemple). c'est le fait de scrapper en direct qui te met bcp de temps, si les infos sont deja dans ta base de données ca se chargera en meme pas 0.1 sec ;)
Super vidéo ! Au lieu d’utiliser l’API pour récupérer la durée du film tu peux le scrapper, en allant chercher le texte entre les deux premier span de la div portant la class meta-body-item. Si la durée est toujours à cet endroit la évidemment. Je pense que ça peut être plus rapide ainsi !
หลายเดือนก่อน
ah c'est pas bête parce que c'est giga bancal de passer par l'API pour une info 😅
Je vois pas en quoi ta solution est "bancale" mis a part que tu tapes dans une source différente. C'est toujours mieux de passer directement par une api. Sinon +1 pour la solution de @paulWCZ . Je rajouterai de passer par une expression régulière étant donnée que tu as plusieurs infos dans ta "boite". Tu cherches un format du genre `/([0-9])h ([0-5]?[0-9])m/` (je fais simple) et tu pourras sortir les heures/minutes séparement pour faire le format qui te convient (donc pas forcée d'utiliser le même que ta source)
Coucou ! Super video, j'ai beaucoup aimé l'esthétique. Je pense beaucoup des aspects techniques ont déjà été discutés en commentaire mais vraiment bravo ! Avec quelle caméra filmes-tu ?
Gg sympa,le projet. Tu peux avoir des cron jobs pour lancer le scraping pour le 8ème jours, tu enregistre dans la base de donnée. Comme ça lorsque l’utilisateur veut accéder au site il y a « juste » les requête sql.
y'a un règle de base avec les appels API c'est que tu veux en faire le moins possible, demande toi toujours si tu peux réduire le nombre d'appel jeune scarabé, sinon super continue !
En 17 ans de TH-cam j'ai dû lâcher 3 commentaires max, voici le 4ème : ta vidéo rassemble tout ce que je recherche, du contenu tech, le côté vlog slice of life, un montage ultra beau et de la bonne musique. Prend mon commentaire, mon pouce bleu et mon abo à ta chaîne, merci !
Pour avoir un temps de chargement rapide tu dois decoupler ton scrapper de ton site web, le scrapper remplit la base de donnée et le site lit la base.
Bon courage pour tes prochains projets !
The goat ! tu es partout mdr
Et un truc tout con en complément du commentaire de cocadmin, avec cette solution tu peux rajouter de la pagination au lieu d'afficher les 50 films sur 1 seule pages, sinon continue, le projet est super !!
@@luhcaran tu peux même faire une demi pagination au onload (avec juste les visibles), une deuxième au scroll (tu charges toujours ceux qui vont apparaitre), et une 3e avec des boutons (page 1, 2, 3), c'est le plus opti découpé comme ça
Oww je n'y avait pas pensé mais c'est vrai que c'est vraiment bien comme idée ! je garde ca dans un coin de ma tête pour la mettre en place ☺ merci infiniment pour ton retour en tout cas !
@@luhcaran yes j'ai pensé à la pagination, le truc c'est que vu que j'affiche chaque fim puis les séances qui y sont associées, j'ai besoin d'avoir récupéré tous les films de tous les cinémas avant de pouvoir les afficher. Sinon je peux pas regrouper les horaires des cinémas par film 😅 Jsp si c'est clair ce que je raconte bruh
Beau projet bravo.
En dehors du projet c'est ta première vidéo que je vois.
Le montage est top, la fluidité, la voix, l'affichage du code, du site, franchement vraiment bien.
Merci du partage
The fact that you used "Let It Happen" as a background song while admiting that you gave up on having a fast and more efficient web site is just so creative from you.
Superbe vidéo ! Et surtout surper beau site ! Pour ton problème d'optimisation, pourquoi ne pas faire une fonction python qui se déclenche tous les jours à une heure précise, qui récupère tous les données de tous les cinémas ? Comme ça ton affichage html ne se concentre que sur la base de donnée. Tu fais moins de requests, un seul scrapping par jour (ou alors 2/3 pour être encore plus précis.) Mais l'utilisateur ne déclencherais pas le scrapping et donc le site se chargerait beaucoup plus vite de son côté :) En tout cas, j'ai passé un superbe moment devant ta vidéo !
merci beaucoup pour ton retour ! Ah j'y avais pas pensé, c'est pas bête comme idée, j'vais me pencher dessus 😏
Oui c'est vrai qu'un petit cron va faire le nécessaire !
Si tu as besoin d'aide n'hésite pas !!! En tout cas tout mon courage c'est super !!!!
@@fazigames277 oui haha
Avec Python et notamment pour le scrapping, je sais que beaucoup créés un service qui se déclenche toutes les x heures. Dans tous les cas, oui tu dois cacher des données. Attention toutefois, certains sites n’autorisent le caching de données surtout si elles sont scrappées. Après j’imagine qu’il faut un peu les processer avant…
franchement gg ! le projet est cool, rien que le fait d'arriver au bout d'un projet c'est déjà très bien, même si il comporte des défauts
de toute façon tous les projets ont des défauts
le montage est vraiment bien et la vidéo est agréable à regarder
continue comme ça!!
La DA pour présenter ton projet est incroyable 🔥🔥 Continues à fond 💪💪
Hyper inspirant moi qui ai démarré ma reconversion pro dans le web il y a une an. Merci et bravo !
Incroyable. Tu viens de régler le problème que j'avais à surveiller chaque page de ciné. Merci !
Joli projet, ça peut être utile à plein de personnes !
Belle réal aussi, c'est clair et construit. Très agréable de voir la partie "Optimisation" aussi, pour se rendre mieux compte du vrai temps passé sur le projet
Hâte de voir la suite !
Wow! fantastique vidéo - super storytelling, structure au top, montage au top.. c'est kiffant de voir quelqu'un de jeune partager ses projets / build in public comme ça ! Hâte de voir la suite!!
Comme d'autres l'ont dit, imo le plus simple est de lancer ton script de scrapping à 23h par exemple et ne scraper que la journée J+8 (si tu es lundi soir, tu vas scrapper que lundi prochain sur allociné). Tu mets à jour ta BDD en fonction de ça, et ensuite le seul script python que tu as sur ton site c'est de savoir la date actuelle. > On est mardi ? Ok alors je prends de aujourd'hui à lundi prochain (que tu auras scrappé et ajouté qlq temps avant dans ta BDD).
Comme tu l'as dit, tes données de films n'évoluent presque pas. Donc ton backend doit être mobile (BDD mise à jour quotidiennement), mais ton front lui renvoie une image "statique" de ton backend.
Superbe projet en tous cas, ça redonne envie de reprendre des projets persos!
Merci pour cette vidéo :)
Merci pour ta vidéo, ce qui est très intéressant est que mine de rien tu as expliqué facilement et d'une manière très compréhensible certaines techniques incontournables dans le développement Web mais qui sont souvent difficiles à comparer
Vraiment merci 👍🔥
Bravo pour le projet et la vidéo, c'est de qualité ! Je t'encourage, c'est top de documenter son apprentissage et de l'ouvrir aux autres !
Hey! Je viens de découvrir ta chaîne via les recommandations TH-cam :)
La DA est trop cool (mi-tuto mi-vlog) et j'ai adoré l'explication des tâches asynchrones avec la cuisine 👌
Très inspirant, je m'abonne et hâte de voir les prochaines vidéos !
Beau projet et très bonne vidéo ! Hâte de voir tes prochaines vidéos :)
Je viens de découvrir ta chaîne, cette vidéo est vraiment très cool !
La structure, le montage, la qualité, tout est top !
Continue comme ça, c'est génial 💪🏽
Super projet ! Le scraping n'est peut-être pas la méthode la plus optimale, mais honnêtement, bravo pour ta vidéo. On sent vraiment ta passion, ça donne un côté très sympa, un peu à la Amy Plant. C’est génial de voir ton processus en détail ! Continue sur cette lancée, Python est top pour commencer, même si tu pourrais rapidement trouver des limites avec Flask. Je te recommande d'explorer d'autres technologies par la suite. En tout cas, superbe vidéo, gros soutien à toi !
Hello ! je ne vais pas rajouter des conseils supplémentaires car il y a déjà beaucoup de bonnes idées dans les commentaires, par contre je te félicite pour ce beau montage et ce projet perso, j'adore ce genre de récit/aventure, continue comme ça :)
Vous avez un très bon style pour expliquer et simplifier les concepts. J'attends avec impatience plus de vidéos Merci
J'ai beaucoup apprécié la vidéo ! C'est la première que je vois, tu détailles bien les outils que tu utilises et tu expliques ton raisonnement, c'est vraiment top. Je m'abonne ! 😉
j'étais venu voir la vidéo pour la stack, j'ai été surprise en voyant un film, bravo pour ce montage, c'est incroyable.
Je viens de te découvrir, ta vidéo est géniale, dans tous les points. Hyper claire, bien rythmée, bon son, le petit reportage dans Paris pour donner plus de contexte donne une belle respiration, et le choix des films est incroyable !
Je suis Product designer, j'ai suivi un Bootcamp full-stack en début d'année. Ce genre de projet est géniale pour rafraîchir les idées et comprendre un peu mieux certaines notions (asynchronisation) et c'est ultra motivant. Merci et bravo !
tu peux faire passer un cron tout les jours qui trigger ton scrapper et met à jours ta DB. A la fin tu te débrouille pour que ton front-end appel ton back-end qui lui tape ta DB (ton front-end ne doit jamais trigger directement ou indirectement ton scrapper). Pour un temps de chargement encore plus court tu peux aussi utiliser un framework qui pourrait te permettre de build ton front-end tout les jours et ensuite le servir de manière static ou encore faire un hybride avec du static pour tes contenus fixe et dynamique pour le dynamique (exemple: gatsby, next...). Bon courage pour la suite, ton projet est très cool. Je te précise aussi que si ton front-end est complètement static ça peut te permettre de le faire héberger gratuitement sur des services comme netlify (full static), vercel (hybride), etc.. et engendre de moindre coûts si tu monte en charge.
merci beaucoup pour ton commentaire ! je connaissais pas les cron mais je viens de checker rapido sur internet et ca m'a l'air vraiment pertinent ! je vais me pencher dessus. Même sur l'hébergement, j'ai pris le premier truc qui fonctionnait mais je vais me renseigner sur ce que tu viens de dire 😉 merci infiniment en tout cas :))
Avec plaisir !
Je decouvre cette chaine et bravo pour le travail , c'est agréable a regarder et bien expliquer ! Tu à le code dans l'âme, surtout continue dans cette lancée ! Bon courage pour la suite !
Franchement lourd la vidéo, les plans sont cool de ouf, la vibe est incroyable et le projet est intéressant. C'est du bon boulot soso
Salut Solène, beau travail !
Tu devrais probablement mettre en place le scrapping via un cron job ou dans une pipeline ETL (tu peux utiliser un simple cron job ou des outils comme Apache Airflow).
Concernant le cache, je te recommande d'utiliser Redis, qui est plus maintenable que le cache de Flask.
Pour assurer une haute disponibilité, si besoin, tu peux mettre en place un load balancer afin de répartir les requêtes sur plusieurs instances de ton backend.
En résumé : divise ton code en deux parties, une pour le cron et une pour l’application. Le cron s'exécute une fois par jour, stocke les données dans la base de données, et ton application utilise ces données pour afficher le contenu.
La stack de fou.
De side project à buisness project ^^
Step by step...
Une nouvelle top chaîne de découverte ! Merci pour la vidée 🙏
Ça encourage les autres à en faire autant. Bravo et bonne continuation 😊
Demn! Super vidéo avec des explications très concises💯🔥.
Bien monté, bons choix musicaux et très bien vulgarisé 🫡
Hyper inspirant et réalisation au top ! Vraiment bravo
Super vidéo !
Juste un truc à faire attention c’est que le scrapping n'est pas autorisé sur la plupart des sites.
Pour savoir si on y est autorisé, il faut que ce soit écrit explicitement dans les CGU.
Dans la majorité des cas, si le site propose une api, c'est qu'il n'autorise pas le scrapping (car bah faut passer par l'API).
Pour plus d'infos je t'invite à te renseigner sur Google directement pour savoir pourquoi etc..
Ton contenu me fait grv penser à celui de Amy Plant dans la manière dont c’est monté et raconter. C’est une très bonne qualité. Continue!
Magnifique vidéo ! J’étais venu pour voir le background derrière le site et là tu donnes envie de faire des projets web et de se pencher sur l’es cinémas indépendants
trop bien ahah 🎬
Merci pour ta vidéo, pour ton optimisation, utilise ton scraper avec un schedule pour remplir ta base se donnée Firebase, puis construis ton site autour de Firebase.
Garde l’avantage du temps réel avec ça et ton outil python ne servira qu’à populer ta database.
Tu pourras ensuite utiliser en plus tous les autres outils Firebase comme analytics entre autre et debug :)
Incroyable vidéo !! j'adore (point bonus pour les musiques)
Pour récupérer la durée du film simplement et éviter une requête supplémentaire tu peux juste récupérer la div parent de ton élément durée, extraire et split le text et le parser. Dans le screen que tu montres à 5:13 tu peux récupérer le contenu de meta-body-info et ensuite isoler le seul élément de cette div ayant 'min' dans son texte. Ca sera forcément la durée de ton film et donc plus besoin de ta requête à TMDB
ahhhh pas con ca ! j'ai galéré la dessus mais si ca peut m'éviter de passer par TMDB ce serait incr
Super video je trouve que t'exprime super bien, tu es clair dans tes idées clair dans ta maniere de parler et surtout tu vas droit au but sans oublier des informations. C'est dynamique on ne voit pas le temps passer. La seule et unique remarque que j'aurais à faire c'est sur le volume des musiques en back qui sont legerement trop fortes.
Hate de voir la suite
C'est trop cool tes vidéos continue et j'aime trop la qualité de ta cam
J'aime beaucoup l'atmosphère de la vidéo vraiment 10/10 superbe vidéo.
Merci pour cette belle vidéo!! Pour la problématique du temps de chargement il faut que le scraping ne soit pas en temps réel: Comme solution vous pouvez développer une sorte de programme "batch" dédié scraping et alimentation de la bd, le programme doit tourner la nuit, de préférence les heures où le site est moins fréquenté.
un trés bin style des vidéos : story + tuto + vlog !
Très belle decouverte. Le projet est intéréssent mais surtout c'est super bien filmé et monté. Merci a toi !
J adore le projet ! Merci d’avoir fait cette appli, je suis certain qu’elle me sera super utile👍
T es juste la best 😁
Merciii beaucoup Maxime ☺ en plus t'aimes bien le cinéma donc ca devrait te plaire ahah
Trop bien fait la vidéo. Les explications aussi, super ❤.
Ça me donne envie de pareil avec mes projets ✨🙂
super vidéo franchement la quali est folle ! Continueeee
Je te découvre avec cette vidéo, super projet et super vidéo ! Franchement je te souhaite que le meilleur pour la suite
J'ai déja bidouillé avec flask et du frontend et je trouve la vidéo très intéressante ! C'est également très bien monté !
Hello ! Trop bien ! C'est vraiment super cool comme vidéo et je kiff le site je vais m'en servir c'est certain. D'ailleurs pour ma part je n'ai pas trop de chargement (à peine quelques secondes) :) PS: j'attends mk2 Odéon/St Michel 😛
Je viens d'arriver à Paris pour 6 mois vraiment tu me régales MERCIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIii
Chouette vidéo! J'ai récemment fait du scraping pour répertorié des events sur mapbox aussi. Je l'ai fais en JS mais l'idée reste la même, le script qui scrape se lance en local tous les jours à 00h (ou quand je le souhaite). Les données que le script récolte sont envoyées vers Strapi (ou une DB, peu importe). Le script regarde également quels sont les events passé pour les archiver.
C’est très bon ce que tu proposes, continue comme ça, lâche rien et tu iras loin 😉
Merci beaucoup Mathis 🙏 c'est trop cool de voir que tu suis ce que je fais :)))
Trop forte Solène, super vidéo, le montage tue. J'espère qu'on pourra bientôt bosser ensemble ! Lâche rien :)
Merci beaucoup Arthur ! Avec grand plaisir hehe🚀
super vidéo !!!!! franchement je laisse rarement des commentaires mais ta vidéo est top top top et on reste du début à la fin
(petit conseil ajoute de la pagination sur ton site ^^)
merci beaucoup 😊 J'avais pensé à la pagination mais vu que je regroupe les séances par film j'ai besoin d'avoir récupéré les données de tous les films de tous les cinémas avant de pouvoir les regrouper 😅 du coup au final sur le temps de chargement ca change pas grand chose la pagination
Belle vidéo ! Bravo pour la vulgarisation des concepts. Bravo !!
La vidéo est top franchement !
Hello ! Trop bien ta vidéo 🔥 Pour le temps de chargement peut être que tu pourrais faire du lazy loading. C'est à dire que tu fais ton scrapping que pour le premier jour de la semaine, puis à chaque fois que l'utilisateur change de jour, les infos ne sont récupérées que pour le jour en question. Couplé au cache ça peut être intéressant comme solution.
Bien sur à voir si cette méthode est compatible avec ton algo.
En tout cas continue ce que tu fais c'est génial !
bonjour Solène,
Bravo pour ton boulot.
Concernant ton problème de lenteur, la programmation des cinés change une fois par semaine, le mercredi. En plus, le nombre de cinés est connu. Donc tu peux tout a fait scrapper les données à jour/heure fixe pour les mettre dans ta base qui alimente ensuite ton site pour la semaine. Puis un scrap chasue jour pour vérifier qu'il n'y a pas eu de modif (déprogrammation ou ahout de séances d'un film qui marche bien...) Et là tu es vraiment en asynchrone.😊
Ah bien vu sur le mercredi ! j'y avais pas pensé mais je vais modifier dans ce sens ! merci beaucoup :))
gg à toi l'idée est grave cool ! 😁
Je commente vraiment jamais d’habitude, mais franchement la réalisation est super bien faite, sujet interessant. Bravo !
Superbe vidéo. Je ne m'abonne pas encore, car j'attends de voir jusqu'où tu peux aller avec le codage. J'attends impatiemment tes futurs projets
Trop bien le cheminement de pensée est super bien retranscrit !
Hello tres cool projet ! Une bonne stratégie serait de dissocier le scraper de ton front. De lancer le scraper toutes les 24h/48h par le biais d'un cron job pour venir remplir ta DB. Et bien sur ensuite t'alimentes ton front avec la db. Tu auras un super gain de perf.
merci beaucoup pour ton retour ! je connaissais pas les cron, et t'es pas le premier à faire remonter ça donc je vais me pencher dessus parce que ca a l'air vraiment pas mal
Est ce que tu saurais comment faire pour récupérer des classes ou ID dynamique ?
Hyper motivant le projet et j’ai test le site et je trouve que ca marche plutôt bien 😊
Trop clean ta vidéo ! Bravo 🎉
Super vidéo et projet.
Idée d'amélioration sur l'ergonomie du site : transformer les horaires en hyperlien vers le site de réservation correspondant.
Tu dois pouvoir stocker l'info en base de données via ton scrapping.
L'idée du projet est stylée ! Le montage, l'écriture, et les musiques de ta vidéo le sont tout autant
Impressionnant, bravo !
J’attendais ta nouvelle master class
Génial, bravo pour le projet.
Incroyable travail ! Bravo !
trop bien la vidéo ! allociné j’ai toujours trouvé ça horrible pour les cinés indé merci d’avoir enfin créé la solution🍻
ah on est d'accord ahah 🤝
Salut !
Super vidéo, néanmoins attention, tu définis mal les fonctions asynchrones, ici avec ta métaphore tu parles plutôt de concurrence ou de multithreading. Pour vulgariser, une fonction asynchrone est une fonction qui permet à ton programme de continuer à faire d'autres tâches pendant que cette fonction fait son travail en arrière-plan. Pour filer la métaphore comme tu dis, ça serait plutôt, tant que la dinde cuit dans le four, je peux fort heureusement me permettre de lire un livre. Lire un livre n'a pas besoin que la dinde soit cuite. Par contre je peux difficilement mettre la table et couper les carottes en même temps haha, mais ça serait super pratique !
Et aussi pour ton soucis, conceptuellement, c'est tout bête :p Il suffit juste de détacher le processus de récupération de données (ton scraper) et la lecture (via ton API Flask) dans ta base de données. Ton scraper tourne sur ton serveur, il n'interfère pas directement avec le site, et ton API vient récupérer la liste des données.
Comme ça plus de soucis, la lecture est très rapide, et le serveur s'occupe périodiquement de récupérer les données pour AlloCiné & l'API de films.
Bon courage pour la suite, la qualité de la vidéo laisse à présager que du bon pour toi. :)
Hellooo, merci infiniment pour ton retour ! et bah écoute j'avais pas saisi la subtilité sur les fonctions asynchrones donc merci beaucoup ! c'est dommage j'aurai kiffé pouvoir couper les carottes en même tant que mettre la table ahah
Yes sur le détachement du processus de scraping et lecture de base de données vous êtes plusieurs à le faire remonter et je vais me pencher dessus parce que la solution a l'air vraiment pas mal !
Merci beaucoup en tout cas ! c'est cool de voir que la commu dev s'entre-aide comme cela ☺🥹
Tu peux ajouter de la pagination pour réduire le temps de chargement. En tout cas super vidéo, très bien expliqué, et merci pour le repo github qui va bien aider le débutant que je suis haha !
j'ai pas terminé la vidéo mais j'aime bien toute les infos donné en tant que débutant dans le dev merceee
Incroyable, pour l’optimisation il faut seulement ton algo de scraping qui tourne en permanence sur ton serveur et envoie à ton Firebase. Ton site fait seulement office d’affichage des données contenues sur la base de données. Tu passeras de 50 à 3 secondes maximum si ton serveur et tes clients ont une bonne connexion.
yes c'est pas bête, vous êtes pas mal à me le dire donc je pense que je vais l'implementer ! merci beaucoup en tout cas ☺
Mais quel poulet, ultra bien vulgarisé, plans incroyables !
Félicitations !
Super vidéo, trop bien ta chaîne youtube !
Bravo pour ce site, et c est vrai que ca manquait ce service. Selon tu devrais mettre aussi l année de sortie du film, comme pour la durée du film c est une info importante. Good job.
J’adore la DA de la vidéo !
Bravo pour ce projet !
Joli projet ! Pour améliorer la vitesse de téléchargement, à mon avis, il serait judicieux de planifier le scraping du site côté serveur (c'est-à-dire ne pas le faire lorsque le client charge la page). Il serait préférable de le lancer toutes les heures, par exemple, afin d'alimenter la base de données. Ensuite, pour la gestion des images, il faudrait penser à réduire leur qualité sur la page web. Sinon, bravo pour une "débutante" dans le scraping, c'est vraiment génial !
L'astuce est de ne pas attendre la requête du client pour mettre à jour le site. Tu peux utiliser des libraires pour lancer automatiquement ton python tous les jours ou heures. Une fois le python exécuté, tu peux stocker le contenu de ta page (soit dans la base de données soit dans un json) et tu viens récupérer ces informations en JavaScript et les insérer dans ton html
Suuuuuper bonne vidéo félicitations !!
Je te conseille de mettre à jour ta base de données avec un script (que tu executes tout les soirs par exemple). c'est le fait de scrapper en direct qui te met bcp de temps, si les infos sont deja dans ta base de données ca se chargera en meme pas 0.1 sec ;)
Super vidéo !
Au lieu d’utiliser l’API pour récupérer la durée du film tu peux le scrapper, en allant chercher le texte entre les deux premier span de la div portant la class meta-body-item. Si la durée est toujours à cet endroit la évidemment. Je pense que ça peut être plus rapide ainsi !
ah c'est pas bête parce que c'est giga bancal de passer par l'API pour une info 😅
Je vois pas en quoi ta solution est "bancale" mis a part que tu tapes dans une source différente. C'est toujours mieux de passer directement par une api. Sinon +1 pour la solution de @paulWCZ . Je rajouterai de passer par une expression régulière étant donnée que tu as plusieurs infos dans ta "boite". Tu cherches un format du genre `/([0-9])h ([0-5]?[0-9])m/` (je fais simple) et tu pourras sortir les heures/minutes séparement pour faire le format qui te convient (donc pas forcée d'utiliser le même que ta source)
incroyable bravo !!
c'est exactement ce dont j'avais besoin
Coucou ! Super video, j'ai beaucoup aimé l'esthétique. Je pense beaucoup des aspects techniques ont déjà été discutés en commentaire mais vraiment bravo ! Avec quelle caméra filmes-tu ?
Ohh je je vais kiffé le projet ! D'ailleurs, évite de mettre des musiques de fond avec des paroles, c'est compliqué de se concentrer sur ta voix 😅
Magnifique la vidéo beaucoup de courage. Je peux voir ton bureau ? C'est simple et beau.
Trés trés cool ton storytelling :)
Super video et super projet !
Gg sympa,le projet.
Tu peux avoir des cron jobs pour lancer le scraping pour le 8ème jours, tu enregistre dans la base de donnée.
Comme ça lorsque l’utilisateur veut accéder au site il y a « juste » les requête sql.
J'aime beaucoup !
y'a un règle de base avec les appels API c'est que tu veux en faire le moins possible, demande toi toujours si tu peux réduire le nombre d'appel jeune scarabé, sinon super continue !
Impressionnant !
idée top, je vais l'utiliser ton site !! un petit détail, ajouter l'année du film serai un plus, étant donné qu'il y a des films anciens !!
Ouaw bravo tu es trop forte !!!
Good! J'aime bien