Je vais d'abord l'écrire, mais je ne suis pas doué pour écrire des phrases, donc si c'est difficile à lire, je suis désolé. Eh bien, je suis très en colère de savoir que je ne peux pas voir la liste des likes parce que j'ai utilisé des likes au lieu du stock. Il semble que de nombreuses personnes s'inquiètent pour Twitter et Qiita. [^ 1] [^ 2] Alors, grattez avec python pour obtenir une liste de likes.
Après avoir installé python3, utilisez la commande pip pour demander, BeautifulSoup4, progressbar2 Se il vous plaît installer
Récupérez la liste d'articles et enregistrez-la dans le fichier results.json
.
# -*- coding:utf-8 -*-
from bs4 import BeautifulSoup
import requests
from time import sleep
import json
from progressbar import ProgressBar
#Connectez-vous à Qiita
payload = {
'utf8': '✓',
'identity': 'lovemuffim114', #Nom d'utilisateur
'password': 'tkhr2783' #mot de passe
}
# authenticity_Obtenez un jeton
s = requests.Session()
r = s.get('https://qiita.com')
soup = BeautifulSoup(r.text, "html.parser")
auth_token = soup.find(attrs={'name': 'authenticity_token'}).get('value')
payload['authenticity_token'] = auth_token
#S'identifier
s.post('https://qiita.com/login', data=payload)
#Dictionnaire d'enregistrement des résultats
results = dict()
searchId = 1000000
param = {"before": searchId, "type": "id"}
#Obtenez le nombre d'articles
maxId = s.get("http://qiita.com/api/public", params=param).json()[0]["id"]
bar = ProgressBar(min_value=0, max_value=maxId) #Définir la valeur maximale
try: #Erreur lorsqu'il n'y a plus d'articles à charger
while True:
param = {"before": searchId, "type": "id"}
#Obtenir la liste d'articles
j = s.get("http://qiita.com/api/public", params=param).json()
#Ajoutez les articles que vous aimez et ne stockez pas aux résultats.
# "url"autre que,"uuid"Peut également être spécifié.
results.update({i["title"]: i["url"] for i in j if i["liked"] and not i["stocked"]})
searchId = j[-1]["id"]
bar.update(maxId - searchId) #Mise à jour de la barre de progression
sleep(1) # sleep(1 seconde)Vous pouvez utiliser des points décimaux.
finally:
print(results)
# results.Enregistrer dans json
with open("results.json", "a") as f:
json.dump(results, f, ensure_ascii=False, indent=4, separators=(',', ': '))
c'est tout. Le résultat est,
{
"[Narou4j] Création d'une bibliothèque d'acquisition de roman pour devenir romancier à Java": "863aa22a29db16463e52",
"Accélérer ListView sans utiliser ViewHolder": "28f8be64d39b20e69552",
"[Narou4j] Création d'une bibliothèque de wrapper Java pour l'API Naruto": "6c050593f45174056005",
"J'ai fait mon propre kit de culture hydroponique.": "5d60c14d560ecf518a4e",
"RxJava + Flux (+ Kotlin)Conception d'applications Android par": "cbf304891daec87ba5b7",
"J'ai créé EventBus avec RxJava": "a4ece37834446c9a39c8"
}
Il sera enregistré sous. Pour me connecter à Qiita, j'ai utilisé Connexion au site Web en Python.
[^ 1]: [[Attention! ] Les articles ne seront pas stockés si vous appuyez simplement sur le bouton "J'aime" sur Qiita! J'ai écrit une extension! ]](Http://qiita.com/gimupop/items/be53044143a9a3e90a4b) [^ 2]: [Résultats de la recherche Twitter pour "qiita Like List-! -Breakthrough"](https://twitter.com/search?f=tweets&vertical=default&q=qiita%20%E3%81%84%E3% 81% 84% E3% 81% AD% E3% 80% 80% E4% B8% 80% E8% A6% A7% E3% 80% 80% 20-% EF% BC% 81% 20-% E7% AA% 81% E7% A0% B4 & src = typd)
Recommended Posts