J'ai essayé de gratter le classement du calendrier de l'avent Qiita avec Python

Le calendrier de l'Avent de Qiit a un classement public. Classement général du calendrier

Au début, je l'ai regardé dans le but de trouver un calendrier intéressant, mais quand j'ai regardé de près, nous étions aussi classés! : Clap clap ::

image.png

Cependant, même si le nombre de likes est de 1, il est classé, donc c'est naturel.

C'était le troisième jour pour la première fois depuis que je savais qu'il était classé ** "Quel est le classement aujourd'hui?" **. C'est un problème ...

J'ai décidé d'automatiser l'acquisition du classement en disant: "Puisque Qiita a une API, vous pouvez obtenir le classement avec."

Scraping si vous n'avez pas d'API!

Qiita a une API. Ici → Spécifications de l'API Qiita v2 Cependant, même si vous regardez la documentation, il n'y a pas d'API Advent Calender: sob:

S'il n'y a pas d'API, j'ai décidé de gratter avec Python. Quand j'ai cherché Python scraping, j'ai trouvé beaucoup de Beautiful Soup, j'ai donc décidé d'utiliser ** Beautiful Soup **.

Le grattage est facile

Le but est clair. Pour obtenir le classement de votre entreprise. J'ai recherché les balises HTML.

スクリーンショット 2019-12-12 19.04.29.png

Pour obtenir le numéro de classement, il semble que vous devriez remonter de deux à partir du lien du calendrier <a class="adventCalendarRankingListItem_calendarName"> et obtenir le texte.

J'ai essayé de coder en utilisant BeautifulSoup.

from urllib import request
from bs4 import BeautifulSoup

targethref = '/advent-calendar/2019/fork'

def main():

    url = 'https://qiita.com/advent-calendar/2019/ranking/feedbacks/all'
    targetclass = 'adventCalendarRankingListItem_calendarName'

    response = request.urlopen(url)
    soup = BeautifulSoup(response,features="html.parser")
    ranking = soup.find('a',class_=targetclass,href=targethref).parent.parent.contents[0].text
    response.close()

    print(ranking)


if __name__ == "__main__":
    main()

Ça y est, c'est aussi simple que ça! ** BeautifulSoup ** Super! (C'est mon sentiment parce que je ne connais pas d'autres bibliothèques qui peuvent être grattées)

en conclusion

J'exécute cette logique sur AWS Lambda une fois par jour. Le résultat de l'exécution a été envoyé à l'outil de discussion de l'entreprise pour partager les informations.

Ce fut un jour où j'ai réalisé que je pouvais faire du scraping même si l'API n'était pas publiée: ensoleillé:


:fork_and_knife: FORK Advent Calendar 2019 L'article du calendrier de l'Avent que j'ai écrit est ici

Recommended Posts

J'ai essayé de gratter le classement du calendrier de l'avent Qiita avec Python
J'ai essayé de gratter avec du python
J'ai essayé d'obtenir le code d'authentification de l'API Qiita avec Python.
J'ai essayé webScraping avec python.
J'ai essayé de trouver l'entropie de l'image avec python
J'ai essayé la "correction gamma" de l'image avec Python + OpenCV
J'ai essayé d'améliorer l'efficacité du travail quotidien avec Python
J'ai essayé de "lisser" l'image avec Python + OpenCV
J'ai essayé des centaines de millions de SQLite avec python
J'ai essayé de "différencier" l'image avec Python + OpenCV
J'ai essayé de "binariser" l'image avec Python + OpenCV
J'ai vérifié le calendrier supprimé dans le calendrier de l'Avent Qiita 2016
J'ai essayé de rationaliser le rôle standard des nouveaux employés avec Python
J'ai essayé d'obtenir les informations sur le film de l'API TMDb avec Python
J'ai essayé fp-growth avec python
J'ai essayé de toucher un fichier CSV avec Python
[OpenCV / Python] J'ai essayé l'analyse d'image de cellules avec OpenCV
J'ai essayé de résoudre Soma Cube avec python
J'ai essayé de visualiser facilement les tweets de JAWS DAYS 2017 avec Python + ELK
J'ai essayé de résoudre le problème avec Python Vol.1
J'ai essayé de gratter la publicité du site de dessin animé piraté
J'ai essayé gRPC avec Python
J'ai essayé la "conversion de morphologie" de l'image avec Python + OpenCV
J'ai essayé de frapper l'API avec le client python d'echonest
J'ai essayé d'envoyer automatiquement la littérature du nouveau virus corona à LINE avec Python
J'ai essayé de résumer les opérations de chaîne de Python
J'ai essayé d'automatiser la mise à jour de l'article du blog Livedoor avec Python et sélénium.
J'ai essayé de comparer la vitesse de traitement avec dplyr de R et pandas de Python
Le 15e temps réel hors ligne, j'ai essayé de résoudre le problème de l'écriture avec python
Essayez de gratter les données COVID-19 Tokyo avec Python
J'ai essayé de simuler la propagation de l'infection avec Python
J'ai essayé d'utiliser la bibliothèque Python de Ruby avec PyCall
J'ai essayé de trouver la moyenne de plusieurs colonnes avec TensorFlow
J'ai écrit la grammaire de base de Python dans Jupyter Lab
J'ai essayé d'exécuter Movidius NCS avec python de Raspberry Pi3
J'ai évalué la stratégie de négociation du système boursier avec Python.
[Python] J'ai essayé de visualiser la relation de suivi de Twitter
[Python] J'ai essayé de collecter des données en utilisant l'API de wikipedia
J'ai essayé de simuler la probabilité d'un jeu de bingo avec Python
J'ai aimé le tweet avec python. ..
Obtenez les tendances Qiita avec le scraping Python
J'ai essayé d'exécuter prolog avec python 3.8.2.
J'ai essayé la communication SMTP avec Python
J'ai essayé de résoudre le problème de F02 comment écrire en temps réel hors ligne avec Python
J'ai écrit un doctest dans "J'ai essayé de simuler la probabilité d'un jeu de bingo avec Python"
J'ai comparé la vitesse de Hash avec Topaz, Ruby et Python
J'ai essayé de résoudre l'édition du débutant du livre des fourmis avec python
J'ai essayé d'automatiser l'arrosage du pot avec Raspberry Pi
Je veux sortir le début du mois prochain avec Python
J'ai essayé de créer une liste de nombres premiers avec python
J'ai essayé de corriger "J'ai essayé la simulation probabiliste du jeu de bingo avec Python"
J'ai essayé d'agrandir la taille du volume logique avec LVM
J'ai essayé d'exécuter la partie DNN d'OpenPose avec le processeur Chainer
J'ai essayé de collecter automatiquement des images de Kanna Hashimoto avec Python! !!
PhytoMine-I a essayé d'obtenir les informations génétiques de la plante avec Python