Racler Avito sans navigateur sans tête

Récemment, un article a été publié sur Habré, Scraping de sites Web modernes sans navigateur sans tête , et dans les commentaires, il a été suggéré que sans navigateur sans tête, il ne fonctionnera pas pour obtenir un numéro de téléphone à partir d'une annonce sur Avito ou Yule. Je veux réfuter cela, ci-dessous est un script python de moins de 100 lignes de code qui analyse avec succès "avito"





Je ne suis pas un spécialiste de "l'analyse" des sites et ce n'est pas mon travail, mais il n'est pas rare que je fasse cela pour résoudre mon travail, et pas seulement des tâches. Par exemple, vous devez obtenir le solde d'un compte personnel dans certains services (opérateurs mobiles) qui ne dispose pas d'API pour cela, ou, ce qui est assez triste, une liste de domaines du bureau d'enregistrement (un autre), qui n'a pas non plus d'API.





Comme dans l'article, quelques commentaires qui m'ont incité à rédiger ce post, j'utilise également Python et la bibliothèque de requêtes. Si vous ne trouvez pas d'API "interne", vous devrez inclure la bibliothèque BeautifulSoup. Mais ici, tout s'est avéré beaucoup plus simple.





Si vous ouvrez la version "complète" du site https://avito.ru, et essayez de copier le numéro de téléphone, il devient clair que le numéro de téléphone sur le site n'est pas écrit, mais dessiné. Mais dans la version mobile du site, le numéro est donné sous forme de texte. Vous pouvez vérifier cela en regardant les réponses lorsque vous cliquez sur le bouton "Appeler" dans les outils de développement dans le navigateur.





Je n'analyserai pas mon script en détail, il y a suffisamment de commentaires dans le code pour comprendre ce qui se passe et à quel stade. En bref, la version mobile du site est utilisée, des variables de recherche sur le site sont déclarées, ainsi que deux variables "clé" et "cookie", à leur sujet plus en détail, puis le processus d'obtention de cookies en ouvrant la page principale est lancé, puis un cycle est lancé qui collecte identifiant de toutes les annonces passant par toutes les pages. Après avoir reçu toutes les annonces du deuxième cycle, parcourez-les et obtenez les informations qui nous intéressent.





Capture d'écran du script:





, .. API. - API. , , . . - . - 100 .





"key" "cookie", key , , - . cookie , "", , IP , "" .





Si c'est intéressant, je vous en dirai plus sur la façon dont je cherchais une API, ou je peux écrire un exemple similaire pour "whirligig".





Le script lui-même








All Articles