Aides débutants python - Limite de requêtes

Bonjour,

Je viens de découvrir cette communauté qui risque d’être une aide précieuse car je débute dans le scraping. Mon but est d’automatiser certaines taches que je réalise chaque jour , quelques recherches notamment.

J’ai réussi a créer des scripts sous Python me permettant de récupérer des données mais je rencontre plusieurs problématique lors de la création et de l’utilisation :

  • Est il possible d’identifier les sécurités d’un site en amont pour faciliter la création de mon code ?
  • Est il possible d’identifier le nombres de requêtes a ne pas dépasser ?

Lors de l’utilisation je suis souvent limiter par le nombre de requête même si je n’ai pas besoins de faire un nombre très important de requête par site je rencontre tout de même certains blocages .

J’ai pu voir que l’utilisation de VPN ou Proxy était une piste pour résoudre cette problématique , pour un usage assez soft quelle solution serait la plus approprié ?

Merci d’avance pour votre aide

Quand tu parles d’un site tu fais référence à des APIs ? Et pour répondre à ta première question, je ne pense que cela soit possible hormis ce qui explicitement/publiquement visible.

Et pour le nombre de requête à dépasser, tu peux utiliser un time.sleep, changer tes User-Agents, faire en sorte que tes en-têtes soient le plus proche de ce qu’il serait si s’était un utilisateur lambda qui l’utilisait et utiliser des proxies (gratuits ou payants).

@Zadigo merci pour ton retour, le fait de changer de user agent est interessant?
Utiliser avec la meme ip un useragent par exemple sous Windows puis sous linux ne sera pas détecté ? Pourtanr le changement d OS est pzu probable.
Quand je parle dun site je parle pas spécialement des api mais de la securite que je peux rencontre en cas par exemple dun nombres de rafraîchissements de la page trop important.

Oui parce qu’il faut que tu saches que quand tu envoies des requêtes en utilisant par exemple la librairie requests, le user agent de la demande est Python <...> donc tu devines bien que les sites qui ne veulent pas ce type de requêtes les bloquent facilement.

J’avais fait des tests avec mon propre VPS en envoyant des requêtes de type robots et le fait est que dans les logs, les utilisateurs normaux ont tous un user agent normaux (vu qu’il utilisent leur navigateur) alors que toutes les requêtes robots que je bloque avec failtoban ont un user agent bizarre ou peu conventionnelle. Et vu que les sites (généralement) pour ban les adresses IP se basent sur les logs, donc en principe le premier reflex c’est de ban ce type type d’en-tête.

En ce qui concerne la sécurité, après ça dépends des plateformes, mais un site lambda, généralement c’est l’analyse des logs et du types de requêtes ainsi que les bases de données classiques de robots connues (sympa ou dangereux). Si tes en-têtes sont proches de ceux utiliser par un utilisateur classique t’auras pas de problème.

Sans mettre de côté le fait qu’envoyer un nombre de requêtes dans un lapse de temps trop court peut déclencher une alerte sur le serveur et ban l’IP.

En final, si tu as besoin de scrapper avec un navigateur classique, j’ai créer une librairie simple d’utilisation basé autour de Selenium et spécifiquement adapté au scrapping. Je l’ai notamment utilisé pour scrapper trois sites e-commerce (2 semaines à pleins temps) sans jamais me faire bloquer. Par contre il faut que tu t’y connaisses plus ou moins sur les bases de Selenium (lien Github ici).