New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Doctolib] Vérifier les slots avec /appointments.json
#502
Comments
Bonjour, est il possible de nous donner des centres pour lesquels les slots doctolib apparaissent sur availabilities.json alors qu'ils n'existent pas réellement ? Merci de votre aide ! |
Ça voudrait dire une requête pour chaque créneau, ça risque d'être énorme en terme de volume de requêtes. Les rdv remontés par |
Pourtant j'en trouve plutôt facilement, voici un exemple actuellement : https://www.doctolib.fr/vaccination-covid-19/seine-et-marne/grand-centre-de-vaccination-covid-19-disney-village?highlight%5Bspeciality_ids%5D%5B%5D=5494 |
Oui, ça peut potentiellement faire beaucoup de requêtes si on souhaite vérifier chaque rendez-vous, mais on peut imaginer de ne pas le faire pour tous les rendez-vous. Une version très minimale pourrait être de vérifier que le premier rendez-vous uniquement si celui-ci est entre 0 et J+7. J'ai pas compris c'était quoi la solution de @Benvii. Par ailleurs, je n'ai pas compris non plus l'issue #512 qui a été citée. |
Après relecture il n'y a pas forcément de lien avec #512 puisqu'on parle d'un bug coté doctolib qui lui même sur la page du centre listerait des créneaux comme disponibles alors que lorsqu'on clique dessus ils ne le sont pas si j'ai bien compris ? Désolé pour la confusion qu'a pu apporter le #512 En phase avec @DavidLibeau il serait intéressant d'évaluer l'impact, je pense qu'on peut le scripter facilement : en utilisant le slot_list puis ajouter une method/filtrer qui pour chaque slot va vérifier la réelle dispo via En revanche, même si on constate quelque chose j'ai peur qu'on puisse difficilement faire quelque chose, car on est clairement dans une stratégie de réductions des requêtes vers doctolib (dans les échanges avec eux) au mieux on peut leur remonter ce point si les chiffres sont alarmants. |
…warning when an invalide one is detected
hello @DavidLibeau j'ai fait le test sur ce centre de valenciennes que tu as mentionné, j'ai bien réussi au bout de quelques exécutions à avoir un J'ai également lancé mon script sur :
Voir les warning dans les logs ici : https://pastebin.com/2HLEr5vy Par conséquent, n'ayant pas constaté de problème flagrant sur les centres mentionné (hormis 1 premier créneau) ce qui ne me semble pas choquant, je vois pas matière à alourdir le nombre de requêtes du scraper pour un problème vraisemblablement mineur. |
Bonjour, Ce bug Doctolib est particulièrement vrai sur le rdv de deuxième dose affichant une notification "rdv non disponible" et demandant de saisir à nouveau le créneau de la première dose. On rentre dans une boucle infernal ou on doit tester chaque créneaux et noter sur un papier ceux déjà testé (Je n'imagine pas mes parents faire cela). Hier soir par exemple AUCUN des 2eme créneaux n'étaient dispo donc impossible de prendre RDV. En revanche ce matin à 5h tous les créneaux semblaient dispo. Je fais l’hypothèse que Doctolib fait une 2eme vérification et qu'au cours de la journée le cache est de plus en plus faux (voir même 0 dispo le soir). Sur la solution je suis d'accord que c'est lourd de faire ainsi (POST https://www.doctolib.fr/appointments.json) mais si Doctolib ne fait pas correctement le boulot c'est au scraper d'apporter une solution effective pour permettre au gens de savoir quels créneaux sont vraiment dispo dans l'interface Doctolib et surtout en fin de journée. Je voulais faire un robot pour le faire mais vous le ferrez mieux que moi. 💡 On pourrait ne tester qu'un créneau par centre. Si il est bon on peux certifier qu'a telle heure il y en avait au moins un et l'afficher en info. Si il est pas valide on peut certifier qu'on a un problème potentiel sur ce centre. Centre testé : https://www.doctolib.fr/vaccination-covid-19/poissy/centre-de-vaccination-de-poissy?pid=practice-163036 |
Merci pour le retour @JulienRobberechts. Le problème semble être rencontré par pas mal de gens, mais ça reste difficilement quantifiable. |
Voici les résultats de mes tests :
Sur un échantillon pseudo-aléatoire correspondant à 10% du total des centres Doctolib (sélection faire sur l'id du tableau lorsque l'unité était Détails des résultats : |
Intéressant 👍
bref il y a un chiffre d'erreur Il est aussi tout à fait possible que le nombre d'erreur ( Et pour rappel le problème plus ennuyeux encore pour l'utilisateur est que cet erreur |
Le cas 4, c'est possiblement mon code qui ne construit pas bien la requête mais c'est possible que ça soit aussi Doctolib qui bug ou autre. Il faut que je regarde de plus près pour tenter de ne plus avoir de cas 4 et des chiffres plus fiables. Je vais mettre à jour les chiffres car c'est mon code qui n'est pas bon. |
Certains sur ce projet ont-ils une relation avec les équipes de Doctolib ? Car à la base il y a un gros bug dans l'interface de Doctolib tout simplement. Plutôt que de corriger leur problème (ce qui sera pas simple et pas transparent pour l'utilisateur) on peut tout simplement leur remonter (si ils écoutent les feedback). |
Voilà, j'ai réussit à débugger mon code et supprimer la ligne "Centres avec problème pour vérifier (souvent erreur 500 sur la requête J'ai déjà remonté le bug à Doctolib. |
Cool, je peux close alors ? Je pense que j'avais un peu sous-estimé le problème |
@Noezor Donc vous ne voulez rien faire sur le sujet ? |
@Noezor Je pense que tu as lu "j'ai réussi à débugger mon code" et tu t'ai dis c'est résolu mais @DavidLibeau ne parlais que du code d'investigation afin de cerner le problème ! On est loin d'avoir identifié la cause racine du problème et trouvé une solution ! Pour moi, c'est pas une issue à fermer. Il y a des difficultés avec Doctolib, même si on ne les traite pas immédiatement il ne faut pas renoncer ou faire comme s’il n'y avait pas de problème. On n’est pas payé au nombre d'issues ici 🤣 |
J'ai pu faire quelques tests sur l'ensemble des centres Doctolib :
J'ai aussi compté les rdv de ces centres. Attention, je ne teste que le premier rendez-vous pour chaque centre, et je compte tous les rendez-vous ici, mais je n'ai pas testé tous les rendez-vous.
|
@Benvii a mis en place une série de modifications qui devraient améliorer grandement le soucis ! Je close donc |
L'issue demande de vérifier la réelle présence d'un rendez-vous avec l'endpoint Est-il possible d'avoir un résumé de ce qui a été fait ? @Benvii |
Sur Doctolib, des slots peuvent apparaitre sur la route
/availabilities.json
alors qu'ils n'existent pas réellement. Le front Doctolib vérifie cela avec une requête sur/appointments.json
lors d'un clic sur un slot. Le scrapper devrait aussi faire cette vérification.Voici un exemple de requête :
The text was updated successfully, but these errors were encountered: