`Ceci est un article sur l'environnement Mac, mais la procédure est la même pour l'environnement Windows. Veuillez lire et essayer la partie dépendant de l'environnement. ''
Utilisez l'API Qiita pour obtenir le nombre d'articles consultés et le nombre de LGTM.
Après avoir lu cet article jusqu'au bout, vous pourrez:
No. | Aperçu | mot-clé |
---|---|---|
1 | Qiita API | |
2 | REST API | requests |
command.sh
page_views_count=11130, likes_count=21, title=Obtenir des données Salesforce à l'aide de l'API REST, url=https://qiita.com/nsuhara/items/19cf8ec89b88fb3deb39
page_views_count=04778, likes_count=11, title=Compétence Alexa en Python/Implémenté dans Lambda, url=https://qiita.com/nsuhara/items/5b19cfb5ffb897bd4cfd
page_views_count=04482, likes_count=06, title=Limiter les pièces jointes Salesforce, url=https://qiita.com/nsuhara/items/bd41c9ad946b8b832207
page_views_count=04008, likes_count=11, title=Test unitaire pour Swift(Unit Test)comment faire, url=https://qiita.com/nsuhara/items/bc06c07ff30a5b78696d
page_views_count=03543, likes_count=03, title=IOS avec Kony App Platform/Créer une application Android, url=https://qiita.com/nsuhara/items/c28d838492512850520c
page_views_count=02642, likes_count=07, title=Flask-SQLAlchemy +Créer un service Web dans PostgreSQL, url=https://qiita.com/nsuhara/items/fa5998c0b2f4fcefbed4
page_views_count=02579, likes_count=15, title=Heroku + Selenium +Automatisez le processus WEB avec Chrome, url=https://qiita.com/nsuhara/items/76ae132734b7e2b352dd
page_views_count=02127, likes_count=04, title=Exécutez régulièrement Python sur Heroku Scheduler, url=https://qiita.com/nsuhara/items/fac20adb6b0a122a3709
page_views_count=02102, likes_count=07, title=Docker +Créer un service Web avec Flask, url=https://qiita.com/nsuhara/items/c7eff7fae3801f85b5cd
page_views_count=01869, likes_count=08, title=Messaging API + LIFF + Heroku + Flask +Créer LINE BOT avec l'extension Framework, url=https://qiita.com/nsuhara/items/0c431913165e4af0f8f5
page_views_count=01597, likes_count=04, title=Service de données Salesforce Lightning(LDS)en savoir plus sur, url=https://qiita.com/nsuhara/items/ecd77def7aa1f985efcc
page_views_count=01507, likes_count=01, title=IOS créé avec Kony App Platform/En savoir plus sur le codage des applications Android, url=https://qiita.com/nsuhara/items/bf0e8884a7efc3c55176
page_views_count=01490, likes_count=05, title=Créer un service Web RESTful avec Flask, url=https://qiita.com/nsuhara/items/449835bc94f0fb3bbcbd
page_views_count=01477, likes_count=02, title=De JSON à Word en utilisant Python(docx)Créer, url=https://qiita.com/nsuhara/items/3ba2fa7db38acd04f448
page_views_count=01377, likes_count=02, title=AWS-Lambda +Données AWS CSV avec Python-Écrire dans S3, url=https://qiita.com/nsuhara/items/b2bd1d2623bca0f767f8
page_views_count=01208, likes_count=03, title=AWS-Lambda +AWS avec Python-RDS/Lire la table PostgreSQL, url=https://qiita.com/nsuhara/items/dd780c2622258d10f961
page_views_count=01194, likes_count=02, title=Django + SQLAlchemy + SQLite3 /Créer une application Web dans PostgreSQL, url=https://qiita.com/nsuhara/items/4ab5366273082ee0aa73
page_views_count=01159, likes_count=04, title=AWS-Lambda + Python +Effectuer régulièrement du grattage WEB avec Cron, url=https://qiita.com/nsuhara/items/0d36600511fc162827f6
page_views_count=01071, likes_count=01, title=IOS créé avec Kony App Platform/Lien de données entre l'application Android et Salesforce, url=https://qiita.com/nsuhara/items/756120f1bddc6f8fe78b
page_views_count=00887, likes_count=00, title=IOS créé avec Kony App Platform/En savoir plus sur la disposition automatique pour les applications Android, url=https://qiita.com/nsuhara/items/a52abd9861c51823ecec
page_views_count=00647, likes_count=02, title=AWS avec Python-S3 signé(Avec une limite de temps)Générer une URL, url=https://qiita.com/nsuhara/items/20160b080c2b30d57729
page_views_count=00597, likes_count=03, title=Interface graphique de la passerelle API Kong/Construire Konga, url=https://qiita.com/nsuhara/items/a0de75e6767f98cc8fec
page_views_count=00500, likes_count=01, title=Construire la passerelle API Kong, url=https://qiita.com/nsuhara/items/ad1d8fa1faad7940b5c1
page_views_count=00471, likes_count=00, title=De la configuration du Raspberry Pi à l'installation de l'environnement Python, url=https://qiita.com/nsuhara/items/05a2b41d94ced1f54316
page_views_count=00437, likes_count=02, title=Créer une voiture à distance avec Raspberry Pi et Python, url=https://qiita.com/nsuhara/items/7970b5dfe95ea76c93d6
page_views_count=00364, likes_count=00, title=Flask-Comment implémenter UPSERT avec SQL Alchemy, url=https://qiita.com/nsuhara/items/86570f789093222252b1
page_views_count=00307, likes_count=00, title=LCD avec Raspberry Pi et Python(16x2)Créer un jeu, url=https://qiita.com/nsuhara/items/57105fd232feffbcd05c
page_views_count=00140, likes_count=00, title=Comment insérer par lots des données CSV dans PostgreSQL, url=https://qiita.com/nsuhara/items/a1b75e0557ed134c5302
items_count=28, total_page_views_count=55690, total_likes_count=125
environnement | Ver. |
---|---|
macOS Catalina | 10.15.6 |
Python | 3.7.3 |
requests | 2.24.0 |
Je pense que vous pouvez approfondir votre compréhension en suivant réellement le contenu de l'implémentation et le code source. Veuillez l'utiliser par tous les moyens.
Il semble que le nombre d'accès (page_views_count) sera "nul" si vous obtenez "des articles en masse" ou "obtenez des articles d'autres personnes" en raison des restrictions de l'API. En guise de contre-mesure, elle a été réalisée par une procédure en deux étapes: Étape 1: Obtention des ID d'article dans un lot, et Étape 2: Obtention du numéro d'accès à chaque article à l'aide de l'ID. (Comme il existe des restrictions d'utilisation de l'API, si le nombre d'articles augmente (= le nombre de demandes augmente), vous risquez d'être pris dans la limite)
Les demandes sont acceptées jusqu'à 1 000 fois par heure pour chaque utilisateur lorsqu'il est authentifié et jusqu'à 60 fois par heure pour chaque adresse IP lorsqu'elle n'est pas authentifiée.
Paramètres> Application> Émettre un nouveau jeton> Cochez read_qiita
> Problème
`* Veuillez enregistrer le jeton d'accès personnel émis. Cette chaîne ne peut pas être réaffiche. ''
config.sh
export PYTHONPATH=app/
export QIITA_ACCESS_TOKEN={Jeton d'accès enregistré ci-dessus}
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
Recommended Posts