[PYTHON] Holen Sie sich Qiitas "Gefällt mir" -Liste durch Schaben

Einführung

Ich werde es zuerst schreiben, aber ich kann keine Sätze schreiben. Wenn es schwer zu lesen ist, tut es mir leid. Nun, ich bin sehr wütend zu wissen, dass ich die Liste der Likes nicht sehen kann, weil ich Likes anstelle von Aktien verwendet habe. Es scheint, dass viele Menschen sich Sorgen um Twitter und Qiita machen. [^ 1] [^ 2] Kratzen Sie also mit Python, um eine Liste der Likes zu erhalten.

Einführung

Verwenden Sie nach der Installation von python3 den Befehl pip, um BeautifulSoup4, progressbar2 anzufordern Bitte installiere

Code

Holen Sie sich die Artikelliste und speichern Sie sie in der Datei "results.json".

# -*- coding:utf-8 -*-
from bs4 import BeautifulSoup
import requests
from time import sleep
import json
from progressbar import ProgressBar

#Melden Sie sich bei Qiita an
payload = {
    'utf8': '✓',
    'identity': 'lovemuffim114',  #Nutzername
    'password': 'tkhr2783'  #Passwort
}

# authenticity_Bekomme Token
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

#Einloggen
s.post('https://qiita.com/login', data=payload)

#Wörterbuch zum Speichern von Ergebnissen
results = dict()

searchId = 1000000
param = {"before": searchId, "type": "id"}
#Holen Sie sich die Anzahl der Artikel
maxId = s.get("http://qiita.com/api/public", params=param).json()[0]["id"]
bar = ProgressBar(min_value=0, max_value=maxId)  #Maximalwert einstellen

try:  #Fehler, wenn keine Artikel mehr geladen werden müssen
    while True:
        param = {"before": searchId, "type": "id"}
        #Artikelliste abrufen
        j = s.get("http://qiita.com/api/public", params=param).json()

        #Fügen Sie Artikel hinzu, die Ihnen gefallen und die Sie nicht auf Lager haben.
        # "url"außer,"uuid"Kann auch angegeben werden.
        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)  #Aktualisierung des Fortschrittsbalkens
        sleep(1)  # sleep(1 Sekunde)Sie können Dezimalstellen verwenden.
finally:
    print(results)

    # results.In json speichern
    with open("results.json", "a") as f:
        json.dump(results, f, ensure_ascii=False, indent=4, separators=(',', ': '))

das ist alles. Ergebnis ist,

{
    "[Narou4j] Erstellt eine neuartige Erfassungsbibliothek, um Romanautor in Java zu werden": "863aa22a29db16463e52",
    "Beschleunigen Sie ListView ohne ViewHolder": "28f8be64d39b20e69552",
    "[Narou4j] Java-Wrapper-Bibliothek für die Naruto-API erstellt": "6c050593f45174056005",
    "Ich habe mein eigenes Hydroponik-Kultivierungsset gemacht.": "5d60c14d560ecf518a4e",
    "RxJava + Flux (+ Kotlin)Android App Design von": "cbf304891daec87ba5b7",
    "Ich habe EventBus mit RxJava gemacht": "a4ece37834446c9a39c8"
}

Es wird gespeichert als. Für die Anmeldung bei Qiita habe ich Anmelden bei der Website in Python verwendet.

Hinweis

[^ 1]: [[Vorsicht! ] Artikel werden nicht vorrätig gehalten, wenn Sie einfach die "Gefällt mir" -Taste auf Qiita drücken! Ich habe eine Erweiterung geschrieben! ]](Http://qiita.com/gimupop/items/be53044143a9a3e90a4b) [^ 2]: [Twitter-Suchergebnisse für "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

Holen Sie sich Qiitas "Gefällt mir" -Liste durch Schaben
Holen Sie sich eine Liste der Artikel, die von Benutzern mit Python 3 Qiita API v2 veröffentlicht wurden
[Python] Ruft eine Liste der Instanzvariablen ab
[Python] Nur eine Liste der Ordner abrufen
Holen Sie sich eine Liste der IAM-Benutzer mit Boto3
Fügen Sie nach und nach eine Liste der Funktionen der Numpy-Bibliothek hinzu --a
Holen Sie sich eine Liste, die von einem anderen Benutzer als Ihnen selbst erstellt wurde
Python: Ruft eine Liste der Methoden für ein Objekt ab
Gruppieren Sie nach aufeinanderfolgenden Elementen einer Liste in Python
[Python] So erstellen Sie eine Liste von Zeichenfolgen Zeichen für Zeichen
[Befehl] Befehl zum Abrufen einer Liste von Dateien mit Zeichen voller Breite
Fügen Sie nach und nach eine Liste der Funktionen der Numpy-Bibliothek hinzu --c
Holen Sie sich die Anzahl der spezifischen Elemente in der Python-Liste
Holen Sie sich eine Liste der mit Python + Selen gekauften DMM-E-Books
Discords Python 1.5 oder höher, ich kann keine Liste der Mitglieder erhalten
So erhalten Sie eine Liste der integrierten Ausnahmen für Python
So erhalten Sie eine Liste mit Links von einer Seite aus Wikipedia
Python> Eine Liste der Dateien in mehreren Verzeichnissen abrufen> Glob verwenden | Nach Änderungszeit sortieren
Holen Sie sich Splunk Download-Link durch Scraping
Holen Sie sich die Anzahl der Ansichten von Qiita
Liste der von conda installierten Pakete
Holen Sie sich Qiita-Trends mit Python-Scraping
Generieren Sie eine Liste aufeinanderfolgender Zeichen
Nogizaka46 Holen Sie sich Blog-Bilder durch Schaben
Sammeln Sie nur Gesichtsbilder einer bestimmten Person mit Web Scraping
Ich habe versucht, mit Boto3 eine Liste der AMI-Namen zu erhalten
Memorandum of Scraping & Machine Learning [Entwicklungstechnik] von Python (Kapitel 4)
Memorandum of Scraping & Machine Learning [Entwicklungstechnik] von Python (Kapitel 5)
Ruft eine Liste der Dateien in einem Ordner mit Python ohne Pfad ab
Für Windows: Ruft eine Liste der Verzeichnisse und Dateien in einem bestimmten Verzeichnis ab.
Abrufen von Eigenschaftsinformationen durch Scraping mit Python
Rufen Sie mit Python eine Liste der in der aktuellen Umgebung installierten Pakete ab
Holen Sie sich die Spaltenliste und Datenliste von CASTable
[Linux] Ein Befehl zum Abrufen einer Liste der in der Vergangenheit ausgeführten Befehle
String-Konvertierung einer Liste mit Zahlen
Holen Sie sich eine Domain, die einer bestimmten Organisation gehört
Holen Sie sich Artikelbesuche und Likes mit Qiita API + Python
Holen Sie sich den Dateinamen des Verzeichnisses (glob)
Python-Skript zum Abrufen einer Liste von Eingabebeispielen für den AtCoder-Wettbewerb
So erhalten Sie mit Python eine Liste der Dateien im selben Verzeichnis
Holen Sie sich viele Twitter-Tweets auf einmal
Eine Menge von ganzen Zahlen, die ax + by = 1 erfüllen.
Holen Sie sich iPad Wartung durch Scraping und benachrichtigen Sie Slack
[Python] Erstellen Sie eine Liste mit verschiedenen Zeichentypen
Ich habe versucht, durch Schaben ein Bild zu bekommen
Anzeige der Ausgabe einer Liste von Gleitkommazahlen
Kopieren Sie die Liste in Python
Holen Sie sich nur Unterklassenelemente in eine Liste
Eine Überprüfung der AWS SDK-Leistung nach Sprache
Holen Sie sich Informationen zu Bootsrennen mit Web Scraping
Lassen Sie uns einen Teil des maschinellen Lernens mit Python berühren
Suchen Sie nach dem Wert der Instanz in der Liste
Visualisierung des Trainee-Rankings von Produce 101 Japan durch Scraping
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
Rufen Sie mithilfe der API eine Liste der GA-Konten, -Eigenschaften und -Ansichten als vertikale Daten ab
Ich habe meine Umgebung mit virtualenv isoliert, aber ich bekomme viele Pakete mit Pip-Liste
[Qiita API] Holen Sie sich Ansichten, Likes, Stocks mit verschiedenen Methoden (JavaScript, Google Script, Python, Vue.js)
[Linux] Liste der Linux-Befehle, die Anfänger kennen sollten
Ruft den Variablennamen der Variablen als Zeichenfolge ab.
Konvertieren Sie das Slice-Objekt in eine Liste mit Indexnummern
Liste der Orte, auf die ich beim Hochladen von Bildern aus Django gestoßen bin