`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. ``
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 |
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
Umgebung | Ver. |
---|---|
macOS Catalina | 10.15.6 |
Python | 3.7.3 |
requests | 2.24.0 |
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.
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).)
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.
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. ``
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
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()
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