Ich habe versucht, das Ranking des Qiita-Adventskalenders mit Python zu kratzen

Qiits Adventskalender hat ein öffentliches Ranking. Gesamtkalender-Rangliste

Zuerst habe ich es mir angesehen, um einen interessanten Kalender zu finden, aber als ich genau hinschaute, wurden wir auch eingestuft! : Klatsch Klatsch ::

image.png

Selbst wenn die Anzahl der Likes 1 ist, wird sie eingestuft, so dass es natürlich ist.

Es war der dritte Tag zum ersten Mal, seit ich wusste, dass es bewertet wurde ** "Was ist das Ranking heute?" **. Das ist ein Ärger ...

Ich beschloss, die Erfassung des Rankings zu automatisieren und sagte: "Da Qiita über eine API verfügt, können Sie das Ranking damit erhalten."

Scraping, wenn Sie keine API haben!

Qiita hat eine API. Hier → Qiita API v2-Spezifikationen Selbst wenn Sie sich die Dokumentation ansehen, gibt es keine Adventskalender-API: sob:

Wenn es keine API gibt, habe ich mich für Python entschieden. Als ich nach "Python Scraping" suchte, fand ich viele Schöne Suppe, also entschied ich mich für ** Schöne Suppe **.

Schaben ist einfach

Der Zweck ist klar. Um das Ranking Ihres Unternehmens zu erhalten. Ich habe die HTML-Tags nachgeschlagen.

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

Um die Rangliste zu erhalten, sollten Sie über den Kalenderlink "" zwei nach oben gehen und den Text abrufen.

Ich habe versucht, mit BeautifulSoup zu codieren.

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()

So einfach ist das! ** BeautifulSoup ** Großartig! (Es ist mein Gefühl, weil ich keine anderen Bibliotheken kenne, die abgekratzt werden können)

  • Wenn Sie das Ranking Ihres Lieblingskalenders erhalten möchten, schreiben Sie target href = in die 4. Zeile. * *

abschließend

Ich führe diese Logik einmal am Tag auf AWS Lambda aus. Das Ergebnis der Ausführung wurde an das Chat-Tool im Unternehmen gesendet, um die Informationen weiterzugeben.

Es war ein Tag, an dem mir klar wurde, dass ich Scraping durchführen kann, auch wenn die API nicht veröffentlicht wurde: sunny:


:fork_and_knife: FORK Advent Calendar 2019 Der Adventskalender-Artikel, den ich geschrieben habe, ist hier

Recommended Posts

Ich habe versucht, das Ranking des Qiita-Adventskalenders mit Python zu kratzen
Ich habe versucht, mit Python zu kratzen
Ich habe versucht, den Authentifizierungscode der Qiita-API mit Python abzurufen.
Ich habe versucht, WebScraping mit Python.
Ich habe versucht, die Entropie des Bildes mit Python zu finden
Ich habe versucht, das Bild mit Python + OpenCV "gammakorrektur" zu machen
Ich habe versucht, die Effizienz der täglichen Arbeit mit Python zu verbessern
Ich habe versucht, das Bild mit Python + OpenCV zu "glätten"
Ich habe Hunderte Millionen SQLite mit Python ausprobiert
Ich habe versucht, das Bild mit Python + OpenCV zu "differenzieren"
Ich habe versucht, das Bild mit Python + OpenCV zu "binarisieren"
Ich habe den im Qiita Adventskalender 2016 gelöschten Kalender überprüft
Ich habe versucht, die Standardrolle neuer Mitarbeiter mit Python zu optimieren
Ich habe versucht, die Filminformationen der TMDb-API mit Python abzurufen
Ich habe fp-Wachstum mit Python versucht
Ich habe versucht, eine CSV-Datei mit Python zu berühren
[OpenCV / Python] Ich habe versucht, Bilder mit OpenCV zu analysieren
Ich habe versucht, Soma Cube mit Python zu lösen
Ich habe versucht, die Tweets von JAWS DAYS 2017 mit Python + ELK einfach zu visualisieren
Ich habe versucht, das Problem mit Python Vol.1 zu lösen
Ich habe versucht, die Werbung für die Raubkopien-Website zu kratzen
Ich habe gRPC mit Python ausprobiert
Ich habe versucht, das Bild mit Python + OpenCV "morphologisch zu konvertieren"
Ich habe versucht, die API mit dem Python-Client von echonest zu erreichen
Ich habe versucht, die Literatur des neuen Corona-Virus mit Python automatisch an LINE zu senden
Ich habe versucht, die String-Operationen von Python zusammenzufassen
Ich habe versucht, das Artikel-Update des Livedoor-Blogs mit Python und Selen zu automatisieren.
Ich habe versucht, die Verarbeitungsgeschwindigkeit mit dplyr von R und pandas von Python zu vergleichen
Beim 15. Offline-Echtzeitversuch habe ich versucht, das Problem des Schreibens mit Python zu lösen
Versuchen Sie, COVID-19 Tokyo-Daten mit Python zu kratzen
Ich habe versucht zu simulieren, wie sich die Infektion mit Python ausbreitet
Ich habe versucht, die Python-Bibliothek von Ruby mit PyCall zu verwenden
Ich habe versucht, mit TensorFlow den Durchschnitt mehrerer Spalten zu ermitteln
Ich habe die grundlegende Grammatik von Python in Jupyter Lab geschrieben
Ich habe versucht, Movidius NCS mit Python von Raspberry Pi3 auszuführen
Ich habe die Strategie des Aktiensystemhandels mit Python evaluiert.
[Python] Ich habe versucht, die folgende Beziehung von Twitter zu visualisieren
[Python] Ich habe versucht, Daten mit der API von Wikipedia zu sammeln
Ich habe versucht, die Wahrscheinlichkeit eines Bingospiels mit Python zu simulieren
Ich mochte den Tweet mit Python. ..
Holen Sie sich Qiita-Trends mit Python-Scraping
Ich habe versucht, Prolog mit Python 3.8.2 auszuführen.
Ich habe die SMTP-Kommunikation mit Python versucht
Ich habe versucht, das Problem von F02 zu lösen, wie man mit Python offline in Echtzeit schreibt
Ich schrieb einen Test in "Ich habe versucht, die Wahrscheinlichkeit eines Bingospiels mit Python zu simulieren".
Ich habe die Geschwindigkeit von Hash mit Topaz, Ruby und Python verglichen
Ich habe versucht, die Anfängerausgabe des Ameisenbuchs mit Python zu lösen
Ich habe versucht, die Bewässerung des Pflanzgefäßes mit Raspberry Pi zu automatisieren
Ich möchte den Anfang des nächsten Monats mit Python ausgeben
Ich habe versucht, mit Python eine Liste von Primzahlen zu erstellen
Ich habe versucht zu beheben "Ich habe versucht, die Wahrscheinlichkeit eines Bingospiels mit Python zu simulieren"
Ich habe versucht, die Größe des logischen Volumes mit LVM zu erweitern
Ich habe versucht, den DNN-Teil von OpenPose mit Chainer-CPU auszuführen
Ich habe versucht, automatisch Bilder von Kanna Hashimoto mit Python zu sammeln! !!
PhytoMine-I hat versucht, mit Python die genetischen Informationen der Pflanze zu erhalten