Holen Sie sich die Anzahl der Ansichten von Qiita

zunaechst

Um die Anzahl der LGTM und View of Qiita zu erhalten Ich konnte darauf verweisen, da sich die API-Spezifikationen geändert haben und ich sie nicht erhalten konnte. Ich werde die Erfassungsmethode beschreiben.

Umgebung

Go 1.15.2

  1. Holen Sie sich das Zugriffstoken === Holen Sie sich Token von User Management Screen image.png

Wählen Sie read_qiita und write_qiita als Bereich aus image.png

  1. Überprüfen Sie die URL der Informationen, die Sie erhalten möchten === Überprüfen Sie die URL der Informationen, die Sie von Official Documents erhalten möchten. Die folgenden zwei Typen werden dieses Mal verwendet.
GET /api/v2/authenticated_user/items
Gibt eine Liste von Artikeln für authentifizierte Benutzer in absteigender Reihenfolge von Erstellungsdatum und -zeit zurück.
GET /api/v2/items/:item_id
Holen Sie sich den Artikel.
  1. Erstellen Sie eine Struktur zum Konvertieren von json === Da die Informationen, die beim Aufrufen der API aus dem offiziellen Dokument zurückgegeben wurden, von Json zurückgegeben werden, Erstellen Sie eine Struktur, die die zurückgegebenen Daten verarbeitet.

UserInfo.go


package data

type UserInfo struct {
	Id               string `json:"id"`
	Likes_count      int    `json:"likes_count"`
	Title            string `json:"title"`
	Page_views_count int    `json:"page_views_count"`
}
  1. Klicken Sie auf die Qiita-API ===

web.go


package qiita

import (
	"../data"
	"../exporter"
	"encoding/json"
	"io/ioutil"
	"net/http"
)

func GetQiitaViews() {                                      // main.Rufen Sie von unterwegs an
	url := "https://qiita.com/api/v2/authenticated_user/items?page=1&per_page=20"
	resp, err := doHttpRequest(url)
	defer resp.Body.Close()                                 //Körper schließen

	body, err := ioutil.ReadAll(resp.Body)                  //Holen Sie sich aus dem Körper der Antwort

	var userInfos []data.UserInfo
	if err = json.Unmarshal(body, &userInfos); err != nil { //Lesen Sie json
		return
	}

	index := 0
	for _, user := range userInfos {                       //Lesen Sie jeweils einen Artikel
		url = "https://qiita.com/api/v2/items/" + user.Id  //Ermitteln Sie die Anzahl der Ansichten mithilfe der Artikel-ID
		resp, err := doHttpRequest(url)
		defer resp.Body.Close()

		body, err := ioutil.ReadAll(resp.Body)

		if err := json.Unmarshal(body, &user); err != nil {return}
		userInfos[index].Page_views_count = user.Page_views_count
		index += 1
	}
	exporter.ToCsv(userInfos)                                //CSV-Konvertierung
}

func doHttpRequest(url string) (*http.Response, error) {     //Gemeinsame Anfrage
	req, _ := http.NewRequest("GET", url, nil)

	buf, _ := ioutil.ReadFile("token.txt")
	token := string(buf)                                     //Verwalten Sie Token in einer separaten Datei

	req.Header.Set("content-type", "application/json")       //Anwendung im Header/Geben Sie json an
	req.Header.Set("Authorization", "Bearer " + token)       //Geben Sie das Token im Header an

	client := new(http.Client)
	resp, err := client.Do(req)
	return resp, err
}

Es scheint, dass Sie es nicht nur mit der folgenden API bekommen können Zuerst wusste ich nicht, dass ich die URL abfragen musste und konnte sie nicht bekommen. Da page_view_count null zurückgibt (0, wenn es mit Go in struct eingefügt wird), Es scheint, dass die Anzahl der Ansichten für jeden Artikel ermittelt werden muss. [[Qiita API] Gefällt mir! Ich habe auf den Artikel "Automatisches Zählen von Ansichten" verwiesen (https://qiita.com/Naoto9282/items/252c4b386aeafc0052ba).

GET /api/v2/authenticated_user/items
Gibt eine Liste von Artikeln für authentifizierte Benutzer in absteigender Reihenfolge von Erstellungsdatum und -zeit zurück.

Daher wird die folgende API verwendet.

GET /api/v2/items/:item_id
Holen Sie sich den Artikel.
  1. CSV-Ausgabe ===

export.go


package exporter

import (
	"../data"
	"encoding/csv"
	"os"
	"strconv"
)

func ToCsv(userInfos []data.UserInfo) {
	file, _ := os.OpenFile("result.csv", os.O_WRONLY|os.O_CREATE, 0600)  //Datei öffnen
	defer file.Close()

	writer := csv.NewWriter(file)
	writer.Write([]string{"title", "like_count", "page_views_count"})   //Fügen Sie eine Kopfzeile hinzu
	for _, user := range userInfos {
		likesCount := strconv.Itoa(user.Likes_count)                    //Konvertiere int in string
		pageViewsCount := strconv.Itoa(user.Page_views_count)
		writer.Write([]string{user.Title, likesCount, pageViewsCount})  //Schreiben
	}
	writer.Flush()
}

Schließlich

Die Quelle finden Sie hier (https://github.com/kurramkurram/QiitaViewCounts). Aufgrund des Hochladens der Quelle auf GitHub Die Token-Informationen werden in einer separaten Datei im selben Verzeichnis wie main.go verwaltet. Einige Fehlerbehandlungen entfallen.

Verweise

Offiziell [Qiita API] Gefällt mir! Automatisches Zählen von Ansichten CSV in Go-Sprache exportieren! SJIS-Version für Excel! Importzyklus nicht erlaubt

Recommended Posts

Holen Sie sich die Anzahl der Ansichten von Qiita
Holen Sie sich die Anzahl der Ziffern
Holen Sie sich die Anzahl der Youtube-Abonnenten
[Python] Ermittelt die Anzahl der Aufrufe aller veröffentlichten Artikel
Ermitteln Sie die Anzahl der PVs von Qiita-Artikeln, die Sie mit API veröffentlicht haben
Holen Sie sich Artikelbesuche und Likes mit Qiita API + Python
10. Zählen der Anzahl der Zeilen
Berechnen Sie die Anzahl der Änderungen
So ermitteln Sie die Anzahl der Stellen in Python
Ermitteln Sie die Größe (Anzahl der Elemente) von Union Find in Python
Berechnung der Anzahl der Assoziationen von Klamer
Holen Sie sich die Anzahl der spezifischen Elemente in der Python-Liste
Ruft die Attribute eines Objekts ab
Holen Sie sich das erste Element von Queryset
Ermitteln Sie die Anzahl der Vorkommen für jedes Element in der Liste
Holen Sie sich die Anzahl der Leser von Artikeln über Mendeley in Python
Zählen / überprüfen Sie die Anzahl der Methodenaufrufe.
Holen Sie sich die Spaltenliste und Datenliste von CASTable
Erhalten Sie Parlamentsprotokolle über API
Ermitteln Sie den Wert der mittleren Schicht von NN
Holen Sie sich den letzten Tag des angegebenen Monats
[Python] Ruft den Zeichencode der Datei ab
Holen Sie sich den Dateinamen des Verzeichnisses (glob)
[PowerShell] Lesen Sie die Zeichenfolge
Zählen Sie die Anzahl der Zeichen mit Echo
"Der Typ, der die Anzahl der Aufrufe aus dem Titel von Jar Jals Video vorhersagt"
Ich habe versucht, den Authentifizierungscode der Qiita-API mit Python abzurufen.
Mit ReportingAPI + Cloud-Funktionen können Sie die Anzahl der Besuche auf jeder Seite ermitteln
Holen Sie sich den Inhalt von Git Diff aus Python
Geben Sie die Anzahl der CPU-Kerne in Python aus
[Python] Ruft die Skalenbezeichnung der Figur ab / bearbeitet sie
[Python] Holen Sie sich die Hauptthemen von Yahoo News
Holen Sie sich den Aufrufer einer Funktion in Python
Berechnen Sie die Gesamtzahl der Kombinationen mit Python
Teilen Sie die Zeichenfolge in die angegebene Anzahl von Zeichen
Finden Sie die Anzahl der Tage in einem Monat
[Python] Ruft das Datum der letzten Aktualisierung der Website ab
Minimieren Sie die Anzahl der Polierungen, indem Sie die Kombination optimieren
Holen Sie sich Qiitas "Gefällt mir" -Liste durch Schaben
Holen Sie sich nur den Adressteil der Netzwerkkarte (eth0)
Bestimmen Sie die Anzahl der Klassen mithilfe der Starges-Formel
[Python] Holen Sie sich den Tag (Englisch & Japanisch)
Rufen Sie das Aktualisierungsdatum der Python-Memorandum-Datei ab.
[Python] Summiert automatisch die Gesamtzahl der von Qiita mithilfe der API veröffentlichten Artikel
Ermitteln Sie mithilfe der Twitter-API die Anzahl der Tweets, die sich auf ein bestimmtes Keyword beziehen
Eine Einführung in die Datenanalyse mit Python - Um die Anzahl der Videoansichten zu erhöhen -
Holen Sie sich den Titel der Yahoo News und analysieren Sie die Stimmung
Wie man die Portnummer des xinetd-Dienstes kennt
[Python] Ein Programm, das die Anzahl der Täler zählt
Ruft den Variablennamen der Variablen als Zeichenfolge ab.
Übergang von Qiita-Beiträgen
Holen Sie sich die GNOME-Version
[Python] Ruft den offiziellen Dateipfad der Verknüpfungsdatei ab (.lnk)
Beziehung der Fibonacci-Zahlenreihe und des Goldenen Schnitts
Die Bedeutung des Selbst
[Python] Ruft den Gesetzestext aus der e-GOV-Gesetz-API ab
Berechnen Sie den Gesamtwert mehrerer Spalten mit awk