Holen Sie sich Artikelbesuche und Likes mit Qiita API + Python

Holen Sie sich Artikelbesuche und Likes mit Qiita API + Python

Einführung

`Dies ist ein Artikel über die Mac-Umgebung, aber die Vorgehensweise ist für die Windows-Umgebung dieselbe. Bitte lesen und probieren Sie den umweltabhängigen Teil. ``

Zweck

Verwenden Sie die Qiita-API, um die Anzahl der Artikel und die Anzahl der LGTMs abzurufen.

Nachdem Sie diesen Artikel bis zum Ende gelesen haben, können Sie:

No. Überblick Stichwort
1 Qiita API
2 REST API requests

Vollständiges Bild

command.sh


page_views_count=11130, likes_count=21, title=Abrufen von Salesforce-Daten mithilfe der REST-API, url=https://qiita.com/nsuhara/items/19cf8ec89b88fb3deb39
page_views_count=04778, likes_count=11, title=Alexa Fähigkeit in Python/In Lambda implementiert, url=https://qiita.com/nsuhara/items/5b19cfb5ffb897bd4cfd
page_views_count=04482, likes_count=06, title=Beschränken Sie Salesforce-Anhänge, url=https://qiita.com/nsuhara/items/bd41c9ad946b8b832207
page_views_count=04008, likes_count=11, title=Unit Test für Swift(Unit Test)Wie man ... macht, url=https://qiita.com/nsuhara/items/bc06c07ff30a5b78696d
page_views_count=03543, likes_count=03, title=IOS mit Kony App Platform/Erstellen Sie eine Android-App, url=https://qiita.com/nsuhara/items/c28d838492512850520c
page_views_count=02642, likes_count=07, title=Flask-SQLAlchemy +Erstellen Sie einen Webdienst in PostgreSQL, url=https://qiita.com/nsuhara/items/fa5998c0b2f4fcefbed4
page_views_count=02579, likes_count=15, title=Heroku + Selenium +Automatisieren Sie den WEB-Prozess mit Chrome, url=https://qiita.com/nsuhara/items/76ae132734b7e2b352dd
page_views_count=02127, likes_count=04, title=Führen Sie Python regelmäßig auf Heroku Scheduler aus, url=https://qiita.com/nsuhara/items/fac20adb6b0a122a3709
page_views_count=02102, likes_count=07, title=Docker +Erstellen Sie einen Webdienst mit Flask, url=https://qiita.com/nsuhara/items/c7eff7fae3801f85b5cd
page_views_count=01869, likes_count=08, title=Messaging API + LIFF + Heroku + Flask +Erstellen Sie einen LINE BOT mit der Framework-Erweiterung, url=https://qiita.com/nsuhara/items/0c431913165e4af0f8f5
page_views_count=01597, likes_count=04, title=Salesforce Lightning-Datendienst(LDS)lernen, url=https://qiita.com/nsuhara/items/ecd77def7aa1f985efcc
page_views_count=01507, likes_count=01, title=IOS erstellt mit Kony App Platform/Erfahren Sie mehr über das Codieren von Android-Apps, url=https://qiita.com/nsuhara/items/bf0e8884a7efc3c55176
page_views_count=01490, likes_count=05, title=Erstellen Sie mit Flask einen RESTful-Webdienst, url=https://qiita.com/nsuhara/items/449835bc94f0fb3bbcbd
page_views_count=01477, likes_count=02, title=Von JSON zu Word mit Python(docx)Erschaffen, url=https://qiita.com/nsuhara/items/3ba2fa7db38acd04f448
page_views_count=01377, likes_count=02, title=AWS-Lambda +AWS CSV-Daten mit Python-Schreiben Sie an S3, url=https://qiita.com/nsuhara/items/b2bd1d2623bca0f767f8
page_views_count=01208, likes_count=03, title=AWS-Lambda +AWS mit Python-RDS/Lesen Sie die PostgreSQL-Tabelle, url=https://qiita.com/nsuhara/items/dd780c2622258d10f961
page_views_count=01194, likes_count=02, title=Django + SQLAlchemy + SQLite3 /Erstellen Sie eine Web-App in PostgreSQL, url=https://qiita.com/nsuhara/items/4ab5366273082ee0aa73
page_views_count=01159, likes_count=04, title=AWS-Lambda + Python +Führen Sie mit Cron regelmäßig WEB-Scraping durch, url=https://qiita.com/nsuhara/items/0d36600511fc162827f6
page_views_count=01071, likes_count=01, title=IOS erstellt mit Kony App Platform/Datenverbindung zwischen Android App und Salesforce, url=https://qiita.com/nsuhara/items/756120f1bddc6f8fe78b
page_views_count=00887, likes_count=00, title=IOS erstellt mit Kony App Platform/Erfahren Sie mehr über das automatische Layout für Android-Apps, url=https://qiita.com/nsuhara/items/a52abd9861c51823ecec
page_views_count=00647, likes_count=02, title=AWS mit Python-S3 signiert(Mit einem Zeitlimit)URL generieren, url=https://qiita.com/nsuhara/items/20160b080c2b30d57729
page_views_count=00597, likes_count=03, title=Kong API Gateway GUI/Baue Konga, url=https://qiita.com/nsuhara/items/a0de75e6767f98cc8fec
page_views_count=00500, likes_count=01, title=Erstellen Sie das Kong API Gateway, url=https://qiita.com/nsuhara/items/ad1d8fa1faad7940b5c1
page_views_count=00471, likes_count=00, title=Vom Einrichten des Raspberry Pi bis zur Installation der Python-Umgebung, url=https://qiita.com/nsuhara/items/05a2b41d94ced1f54316
page_views_count=00437, likes_count=02, title=Erstellen Sie ein entferntes Auto mit Raspberry Pi und Python, url=https://qiita.com/nsuhara/items/7970b5dfe95ea76c93d6
page_views_count=00364, likes_count=00, title=Flask-So implementieren Sie UPSERT mit SQL Alchemy, url=https://qiita.com/nsuhara/items/86570f789093222252b1
page_views_count=00307, likes_count=00, title=LCD mit Raspberry Pi und Python(16x2)Erstelle ein Spiel, url=https://qiita.com/nsuhara/items/57105fd232feffbcd05c
page_views_count=00140, likes_count=00, title=So fügen Sie CSV-Daten stapelweise in PostgreSQL ein, url=https://qiita.com/nsuhara/items/a1b75e0557ed134c5302

items_count=28, total_page_views_count=55690, total_likes_count=125

Ausführungsumgebung

Umgebung Ver.
macOS Catalina 10.15.6
Python 3.7.3
requests 2.24.0

Quellcode

Ich denke, dass Sie Ihr Verständnis vertiefen können, indem Sie den Implementierungsinhalten und dem Quellcode tatsächlich folgen. Bitte benutzen Sie es auf jeden Fall.

GitHub

Zum Thema passende Artikel

Vorsichtsmaßnahmen (Kampfpunkte)

Anzahl der Artikelzugriffe (page_views_count)

Es scheint, dass die Anzahl der Zugriffe (page_views_count) "null" ist, wenn Sie aufgrund von API-Einschränkungen "Artikel in großen Mengen" oder "Artikel anderer" erhalten. Als Gegenmaßnahme wurde dies durch ein zweistufiges Verfahren von Schritt 1: Erhalten der Artikel-IDs in einem Stapel und Schritt 2: Erhalten der Anzahl der Zugriffe auf jeden Artikel unter Verwendung der ID realisiert. (Da es API-Nutzungsbeschränkungen gibt, kann es vorkommen, dass Sie in das Limit geraten, wenn die Anzahl der Artikel zunimmt (= die Anzahl der Anforderungen steigt).)

API-Nutzungsbeschränkungen

Anfragen werden bis zu 1000 Mal pro Stunde für jeden Benutzer im authentifizierten Zustand und bis zu 60 Mal pro Stunde für jede IP-Adresse im nicht authentifizierten Zustand angenommen.

Zugangstoken

Einstellungen für persönliche Zugriffstoken

Einstellungen> Anwendung> Neues Token ausgeben> Read_qiita prüfen> Ausgabe

`* Bitte speichern Sie das ausgestellte persönliche Zugriffstoken. Diese Zeichenfolge kann nicht erneut angezeigt werden. ``

Konfig

config.sh


export PYTHONPATH=app/
export QIITA_ACCESS_TOKEN={Zugriffstoken oben registriert}
export QIITA_PAGE=1
export QIITA_PER_PAGE=100
export QIITA_URL_ITEM=qiita.com/api/v2/items
export QIITA_URL_LIST=qiita.com/api/v2/authenticated_user/items

Maine

main.py


"""app/main.py
"""

import os

import requests


def get(url):
    """get
    """
    headers = {
        'Content-Type': 'application/json',
        'Charset': 'utf-8',
        'Authorization': 'Bearer {}'.format(os.getenv('QIITA_ACCESS_TOKEN'))
    }
    res = requests.get(url=url, headers=headers)
    print('{}, {}'.format(res.status_code, res.url))
    return res


def get_id_list():
    """get_list
    """
    res = get(url='https://{url}?page={page}&per_page={per_page}'.format(**{
        'url': os.getenv('QIITA_URL_LIST'),
        'page': os.getenv('QIITA_PAGE'),
        'per_page': os.getenv('QIITA_PER_PAGE')
    }))
    return [item.get('id') for item in res.json()]


def get_item(qiita_id):
    """get_item
    """
    res = get(url='https://{url}/{id}'.format(**{
        'url': os.getenv('QIITA_URL_ITEM'),
        'id': qiita_id
    }))
    item = res.json()
    return {
        'page_views_count': item.get('page_views_count'),
        'likes_count': item.get('likes_count'),
        'title': item.get('title'),
        'url': item.get('url')
    }


def output(items):
    """output
    """
    total_page_views_count = 0
    total_likes_count = 0

    print('-'*100)

    for item in items:
        total_page_views_count = total_page_views_count + \
            item.get('page_views_count')
        total_likes_count = total_likes_count+item.get('likes_count')

        print('page_views_count={}, likes_count={}, title={}, url={}'.format(
            str(item.get('page_views_count')).zfill(5),
            str(item.get('likes_count')).zfill(2),
            item.get('title'),
            item.get('url'))
        )

    print('\nitems_count={}, total_page_views_count={}, total_likes_count={}'.format(
        len(items), total_page_views_count, total_likes_count))

    print('-'*100)


def main():
    """main
    """
    items = list()

    for qiita_id in get_id_list():
        items.append(get_item(qiita_id=qiita_id))

    sorted_items = sorted(
        items, key=lambda x: x['page_views_count'], reverse=True)

    output(items=sorted_items)


if __name__ == '__main__':
    main()

Ausführungsbeispiel

sample.sh


~$ git clone https://github.com/nsuhara/python-qiita-api.git -b master
~$ cd python-qiita-api

~$ python -m venv .venv
~$ source .venv/bin/activate
~$ pip install -r requirements.txt
~$ source config

~$ python app/main.py

Recommended Posts

Holen Sie sich Artikelbesuche und Likes mit Qiita API + Python
Ermitteln Sie die Anzahl der PVs von Qiita-Artikeln, die Sie mit API veröffentlicht haben
Ich habe versucht, den Authentifizierungscode der Qiita-API mit Python abzurufen.
[Python] Mit der API von Qiita erhalten Sie Benutzer- und Artikelinformationen
[Python] Ermittelt die Anzahl der Aufrufe aller veröffentlichten Artikel
Holen Sie sich eine Liste der Artikel, die von Benutzern mit Python 3 Qiita API v2 veröffentlicht wurden
[Python] Summiert automatisch die Gesamtzahl der von Qiita mithilfe der API veröffentlichten Artikel
Nachdem Sie mit Python auf die Qiita-API geklickt haben, um eine Liste mit Artikeln für Anfänger zu erhalten, werden wir die Artikel von God besuchen
Berechnen Sie die Gesamtzahl der Kombinationen mit Python
Holen Sie sich den Betreff und den Text von Google Mail mit der Python- und Google Mail-API
Ich habe versucht, die Filminformationen der TMDb-API mit Python abzurufen
Erhalten und schätzen Sie die Form des Kopfes mit Dlib und OpenCV mit Python
Holen Sie sich mit Python den Aktienkurs eines japanischen Unternehmens und erstellen Sie eine Grafik
So ermitteln Sie die Anzahl der Stellen in Python
Visualisieren Sie den Bereich der internen und externen Einfügungen mit Python
Ermitteln Sie die Größe (Anzahl der Elemente) von Union Find in Python
Erhalten Sie Kommentare und Abonnenten mit der YouTube-Daten-API
Holen Sie sich mit Python den Betriebsstatus von JR West
Holen Sie sich die Anzahl der Ziffern
Rufen Sie die API mit python3 auf.
Versuchen Sie, mit Python schnell und einfach auf die Twitter-API zuzugreifen
Holen Sie sich die Anzahl der spezifischen Elemente in der Python-Liste
Berühren wir die API der Netatmo Weather Station mit Python. #Python #Netatmo
Befreien Sie sich mit Python und regulären Ausdrücken von schmutzigen Daten
[Homologie] Zählen Sie mit Python die Anzahl der Löcher in den Daten
Beispiel für das Parsen von HTTP GET und JSON mit Pfefferpython
Spielen Sie mit dem Passwortmechanismus von GitHub Webhook und Python
Holen Sie sich die Quelle der Seite unbegrenzt mit Python zu laden.
Rufen Sie die Hatena Blog API von Python aus auf und speichern Sie Ihre Blog-Artikel einzeln auf Ihrem PC
Holen Sie sich Bewertungen mit Python Googlemap API
Ich habe mit Lambda eine App erstellt, die LINE über die Qiita-API über "Likes" informiert.
Quine Post mit Qiita API (Python)
Holen Sie sich das Wetter mit Python-Anfragen
Klicken Sie mit Python auf die Etherpad-Lite-API
Holen Sie sich Qiita-Trends mit Python-Scraping
Holen Sie sich die Anzahl der Youtube-Abonnenten
Koexistenz von Python2 und 3 mit CircleCI (1.0)
Holen Sie sich den Kauf- und Verkaufspreis der virtuellen Währung mit der API von Zaif Exchange und erstellen Sie ein Diagramm
Ich habe die Geschwindigkeit von Hash mit Topaz, Ruby und Python verglichen
Ich habe versucht, das Ranking des Qiita-Adventskalenders mit Python zu kratzen
Zählen Sie die Anzahl der thailändischen und arabischen Zeichen in Python gut
So erhalten Sie mithilfe der Mastodon-API Follower und Follower von Python
[Python] So erhalten Sie den ersten und den letzten Tag des Monats
Crawlen mit Python und Twitter API 2-Implementierung der Benutzersuchfunktion
Rufen Sie den Wert des Dropdown-Menüs mit Python und Selen ab und legen Sie ihn fest
Holen Sie sich den Titel und das Lieferdatum von Yahoo! News in Python
Holen Sie sich die Anzahl der Leser von Artikeln über Mendeley in Python
PhytoMine-I hat versucht, mit Python die genetischen Informationen der Pflanze zu erhalten
Überprüfen Sie die Existenz der Datei mit Python
[Python] Ruft den Variablennamen mit str ab
Erhalten Sie Parlamentsprotokolle über API
Holen Sie sich Urlaub mit der Google Kalender-API
[Python] Ruft den Zeichencode der Datei ab
[Python] Python-Paketinformationen mit der PyPI-API abrufen
Zählen Sie die Anzahl der Zeichen mit Echo
Ermitteln Sie mit Selenium + PhantomJS + Python die Breite des Div auf der Serverseite
Ich habe die numerische Berechnung von Python durch Rust ersetzt und die Geschwindigkeit verglichen
Berechnen Sie die kürzeste Route eines Diagramms mit der Dyxtra-Methode und Python