Se former à un scper et un bot (puppeteer, selenium, python...) ?

Bonjour,

J’aimerais me former avec un outil ou un langage de programmation puissant aux multiples possibilités web afin qu’il puisse me servir pendant de nombreuses années. Pour l’instant je fais un peu de php.

J’ai 2 attentes principales

  • Je veux pouvoir scraper des sites web (html ou avec un rendu javascript côté serveur) pour importer du contenu sur mon site web, csv ou google sheet. Pour l’instant, j’utilise google sheet avec importxml mais c’est très long et très limité.
    quel programme ou langage de programmation me recommandez-vous ?

  • Je voudrais aussi programmer un bot pour créer automatiquement un compte (twitter, quora…) et poster un message issu d’une liste ou bdd avec le profil créé.
    quel programme ou langage de programmation recommandez-vous ?

merci pour vos conseils

Salut !

Je te conseille Python, c’est le langage le plus logique/user-friendly pour débuter avec une syntaxe très simple et beaucoup de modules qui feront le job à ta place.

Pour scraper, tu as requests, pour traiter les données beautifulSoup, etc etc…

3 J'aime

Merci pour ta réponse. Tu penses qu’avec python je peux scraper meme des pages avec un affichage javascript ou ajax ? je peux creer et ensuite me logguer sur un compte facebo ou quora pour poster ? interagir avec un bdd mysql d’un site web ?

Tout est possible, ça dépend de toi et de tes capacités ensuite !

1 J'aime

(ou, en tout cas, je n’ai pas encore trouvé quelque chose d’impossible)

Merci.
Si ce langage :

  • Me permet de tout faire → je ne serai pas obligé de me former sur plusieurs logiciels ou langage.
  • Qu’il est simple → je ne serai pas découragé par un long apprentissage rébarbatif
  • Qu’il y a des modules pour gagner du temps → je pourrais augmenter ma productivité plutôt que de réinventer la roue à chaque fois.

C’est tout ce que je recherche alors

La réponse sera toujours très personnelle. Aujourd’hui tu peux scraper dans tous les langages sans problèmes. Tout dépendra de tes affinités. Et tu pourras « tout » faire.

Si tu veux un autre avis, je te conseillerais javascript avec des libs comme:

  • axios (pour effectuer tes requêtes)
  • cheerio (pour parser le HTML et en contrôler son contenu, extraire les infos)
  • puppeteer (pour contrôler le navigateur chrome)

:wink:

1 J'aime

Dans le cadre du scraping, de l’automatisation de tache (requete web, gestion de bdd) et la gestion de site web.

Je voudrais me former à un langage qui puisse être recherché dans le milieu professionnel, ne soit pas trop compliqué à apprendre, que je puisse automatiser et qui permette une bonne productivité (mis en oeuvre, module, communauté, rapidité, universalité…).

J’ai déja essayé puppeteer qui fonctionne pas mal. Mais je voudrais arreter de partir dans tous les sens et faire du bricolage pour me concentrer sur l’utilisation et la création d’ outils plus robustes.

Puppeteer ou Playwright

Mon seul conseil serait de tester les langages que l’on t’a proposé et voir celui qui te parle le mieux. Dans tous les cas tu pourras à terme mettre en place des solution solides.

(On fait tourner des million de requêtes chaque mois depuis 5-6 ans, tout passe par du javascript. Et quelqu’un sur python pourra te dire la même chose.)

Merci pour vos retours.
Il existe pypeeter qui est la version pupeteer pour python. Je ne sais pas s’il est aussi complet mais cela peut etre sympa pour élargir le champ d’action de python.

Un article sympa qui compare python et JS pour la web automation.
https://www.codementor.io/@satwikkansal/python-javascript-and-web-automation-10zfvpeq0g

De ce que j’ai compris:

  • JS plus rapide, plus orienté web mais plus complexe.
  • Python, plus large d’utilisation, plus simple mais plus lent
1 J'aime

Salut Gandolfi !

Si tu veux avoir un vision sur ce qui est recherché dans le monde pro, ce site peut t’aider : Stack Overflow Developer Survey 2020

Dans le monde pro Python arrive en tête au niveau des « most wanted » suivit par Javascript.

Personnellement je conseil souvent Javascript pour le grand nombre de possibilités qu’offre le language si tu veux développer des projets dans d’autres domaines par la suite (app mobile, logiciels etc…).
Les libs indiquées par @mnmlstrntreprnr sont top pour tes besoins du moment.

Et pour donner une idée des autres possibilités :

  • Tu peux créer une app iOS et/ou Android avec React Native (utilisé par Uber eats)
  • Créer une app MacOS ou Windows avec Electron (utilisé par skype)

Mais effectivement, le mieux c’est de bien tester et de garder ce qui te convient.

4 J'aime

Merci pour les infos. Je pense me tourner vers javascript car j’utilise déja un peu puppeteer et que cela m’intéresse de pouvoir développer un app android. Je commence à faire des essais avec.

  • Le most wanted des développeurs n’est pas forcement en rapport avec le plus recherché dans le monde du travail non ? C’est plus un désir d’apprendre ou utiliser un type de langage non ?

  • Tu as des forums, chaines youtube… à me conseiller pour arriver à automatiser mes scraps et recueil de donnée ? On trouve souvent des tutos sur des utilisations particulieres mais rarement un tuto d’ensemble pour mettre tout cela en productivité.

Bonjour,
Merci pour ce sujet intéressant et pour vos conseils.
Une idée de site, plateforme, blog, livres, etc. pour se former à Python de façon autonome et gratuite pour un profane ?
Merci à tous,
Bonne journée

Effectivement, tu as raison pour le most wanted, ce qui se rapprocherait peut être le plus serait la section « Most Popular Technologies » / « Professional Developers » que tu peux retrouver ici.
Ça n’est pas exactement ça mais ça peut donner une idée.

Au niveau des chaines tu as :

1 J'aime

Salut et merci beaucoup pour tes liens. En ce moment j’essaye de scraper des événements facebook mais ce n’est pas évident de se balader dans une autre frame puis de scraper des élements avec des balises générées automatiquement.

  • A ce propos vous avez des programmes permettant de faciliter l’analyse d’une page ? Un programme qui permettrait de se retrouver facilement dans une page pour savoir quelle info css ou xpatch selectionner ? J’ai l’impression que c’est très empirique et beaucoup de dermerde:)

  • Peut etre un forum technique pour poser des questions ?

  • Pour le « most popular technologies » je ne pense pas que cela soit le bon critère car une techno peut etre très populaire chez les développeur mais ne pas forcement etre recherché, ni bien payé du fait sa grande diffusion. Je pense que le « top-paying-technologies » est un bon indicateur car il nous renseigne sur ce qui est rare et donc payé cher. Scala a la cote apparemment mais je ne connais pas. Je ne sais pas si on pourrait faire du scrapping ou de l’automatisation web avec.
    Top paying techno
    Après il faut mettre de coté les techno vieillissantes car sans avenir bien que bien payé pour certaines. Je connaissais un gars qui était très recherché car il programmait avec un vieux langage utiliser du fait des vieux terminaux bancaires.

Avec de l’habitude, l’inspecteur d’éléments de Chrome est largement suffisant pour inspecter et analyser une page. Il sert à la fois à regarder le HTML (clic droit sur un élément > inspecter) et également à regarder les flux réseaux pour savoir quelle requête alimente quelle donnée.

Pour la technologie, la plupart des développeurs développent des scrapers en Python mais la question n’est pas réellement « quelle est la meilleure techno ? » mais plutôt avec laquelle tu te sentiras à l’aise. Si tu préfères le PHP ou le ruby, tu trouveras tous les outils qu’il te faut pour développer tes scripts sur ces technos également.

1 J'aime

Merci pour ton retour.
Pour l’instant j’utilise « l’inspecteur » sur firefox ou Chrome. Mais cela n’est pas évident de savoir ou chercher (requete, reponse, json…) et comment s’y prendre. Je pensais qu’il existait des programmes pour aider à analyser les pages.

  • Je me forme sur puppeteer petit à petit mais je n’arrive pas à trouver des ressources claires pour savoir comment scraper une iframe, un lien contenu dans un selecteur ou bien chercher un texte en fonction de la balise qui contient le paragraphe par exemple. C’est plus du bidouillage et de multiples essais en lisant différents forums.

Si ça peut t’aider :

  • Une fois l’inspecteur ouvert, tu peux oublier toutes les sections à part « Elements » (pour regarder le code source) et « Network » (pour regarder les connexions réseau)
  • Dans l’onglet Network, tu seras vite surchargé par le nombre de requêtes ; le site va charger les CSS, les images, les scripts… Tu peux filtrer par sections : celles qui te seront les plus utiles sont « XHR » (pour les requêtes asynchrones) et « Doc » (la page initiale au chargement).

Le dev ça commence par du bidouillage avant de devenir un projet concret, garde courage :slight_smile:

1 J'aime

Si tu as des besoins précis, principalement côté business, regarde du côté de phantombuster, l’outil est extra, et fait gagner un tps fou.
Un copain m’a posé les memes questions il y a 2 mois, je l’ai renvoyé vers l’outil, et il m’a remercié car avec phantombuster + zapier, tu peux faire presque tout, sans avoir à coder.

Après, si tu veux coder, je conseillerai javascript, plutot que python si tu veux faire du web aussi (j’en déduis du front aussi) avec création de site web. +1 pour le combo : Axios + cherrio + puppeteer (+ rotative IP)

2 J'aime