Ich möchte ein Bild meiner Lieblingsperson speichern ...
Derzeit veröffentlichen Maler verschiedene Bilder auf Twitter.
Ich schaue oft auf das Bild von Vtuber, aber ich fand es gut, ich wollte es irgendwo speichern ...
Ich bemerkte, dass Vtuber-Bilder, die ich oft sehe, oft von Hash-Tags auf Twitter gepostet werden, und ich fragte mich, ob ich etwas dagegen tun könnte, also machte ich während der Untersuchung ein "Sammlungswerkzeug".
Übrigens möchte ich hier meine Lieblings "Pekora Usada" aufnehmen.
・ Erfassung und Authentifizierung der Twitter-API ・ Legen Sie die zu sammelnden Informationen fest (Tweets mit der Zeichenfolge "#pekoratto", 100 Erfassungen usw.) ・ Erstellen einer Datei zum Speichern des gespeicherten Bildes usw. ・ Erfassung der Bild-URL ・ Als JPG-Datei speichern
Schauen wir uns jeden an.
Bitte springen Sie zur folgenden Seite und holen Sie sich die Twitter-API.
Ich werde die detaillierte Methode weglassen.
Ich denke, es wäre gut, es am Anfang der Quelle zu definieren.
const (
consumerKey = ""
consumerSecret = ""
accessToken = ""
accessTokenSecret = ""
)
Hier,
Wie viele Tweets soll ich bekommen? Enthält es Retweets? Fügen Sie keine Tweets ohne Bilder hinzu
Stellen Sie eine Abfrage wie z.
v := url.Values{}
v.Set("count", "100")
query := "Pekora und OR#Pekora und ausschließen:retweets filter:images"
searchResult, _ := api.GetSearch(query, v)
Hier wird "count", dh die Anzahl der Tweets, verwendet, um 100 Tweets zu erhalten. Nehmen Sie als nächstes an, dass die gesuchte Zeichenfolge "Pekorato" oder "#Pekorato" ist. Nur Tweets mit angehängten Bildern, ohne Retweets.
Ich wusste nicht, dass es in diesem Teil eingestellt werden kann, also habe ich den Tweet-Inhalt erhalten und beurteilt, ob der Bildinhalt daraus existiert.
Wenn Sie es normal speichern, wird es durcheinander gebracht. Erstellen Sie daher einen Ordner, um das Bild zu speichern. Beim Erstellen einer JSON-Datei ist es besser, einen anderen Ordner zu erstellen.
Wenn Mkdir im folgenden Quellcode ausgeführt wird, wird die Nummer 0777 verwendet, die die Dateiberechtigungen beschreibt. 0: Kann nicht lesen / schreiben / ausführen 1: Nur ausführbar 2: Nur schreiben 3: Kann geschrieben und ausgeführt werden 4: Nur Lesen 5: Lesbar und ausführbar 6: Kann gelesen und geschrieben werden 7: Lesen, ausführen, schreiben Warum gibt es drei Ziffern? Hast du nicht gedacht? Dies ist von oben nach unten
//Stellen Sie das aktuelle Verzeichnis mit einem absoluten Pfad ein
currentDir, err := filepath.Abs(".")
//Chdir ist ein Befehl als Bild$Gefühl CD
err = os.Chdir(currentDir)
if err != nil {
panic(err)
}
//Überprüfen Sie die Datei
_, err = os.Stat("pekorato")
if err != nil {
//Erstellen Sie nun einen Ordner mit Mkdir
err = os.Mkdir("pekorato", 0777)//0777 wird oben ausführlich erklärt
if err != nil {
panic(err)
}
}
//Verschieben Sie das Verzeichnis und speichern Sie die Bilder hier zusammen
err = os.Chdir(currentDir + "/pekorato")
if err != nil {
panic(err)
}
Das Abrufen der URL eines Bildes ist ebenfalls einfach. Wenn Sie die Details weglassen, können Sie sie mit einer Codezeile unten sammeln.
Umgekehrt können Sie unterschiedliche Informationen erhalten, indem Sie nach dem Tweet neu schreiben. Beispielsweise können Sie tweet.User.ProfileImageURL verwenden, um die URL des Bildes für das Profil dieses Benutzers abzurufen.
mediaRawURL := tweet.ExtendedEntities.Media[0].Media_url_https
Ich denke, es ist eher eine Kopie als eine Sicherung. Ich mache am Anfang http.Get, aber dies erfordert ein wenig Wissen über http. Was wird zurückgegeben, wenn ich die get-Methode sende? Wenn Sie es nicht wissen, sollten Sie es überprüfen.
response, err := http.Get(mediaRawURL)
if err != nil {
panic(err)
}
defer response.Body.Close()
//JPG-Datei generieren
pekoPic, err := os.Create(fmt.Sprintf("pekora%d.jpg ", i))
if err != nil {
panic(err)
}
defer pekoPic.Close()
//Auf heruntergeladenes pekoPic kopieren
io.Copy(pekoPic, response.Body)
package main
import (
"fmt"
"io"
"net/http"
"net/url"
"os"
"path/filepath"
"github.com/ChimeraCoder/anaconda"
)
//Bitte geben Sie hier selbst ein.
const (
consumerKey = ""
consumerSecret = ""
accessToken = ""
accessTokenSecret = ""
)
func main() {
//Twitter-Authentifizierung
anaconda.SetConsumerKey(consumerKey)
anaconda.SetConsumerSecret(consumerSecret)
//Persönliche Authentifizierung
api := anaconda.NewTwitterApi(accessToken, accessTokenSecret)
/*************
Suchabfrageeinstellungen
**************/
v := url.Values{}
v.Set("count", "100")
query := "Pekora und OR#Pekora und ausschließen:retweets filter:images"
searchResult, _ := api.GetSearch(query, v)
/**********************************************
Erstellen eines Ordners zum Speichern von Bildern und Verschieben von Verzeichnissen
**********************************************/
currentDir, err := filepath.Abs(".")
if err != nil {
panic(err)
}
_, err = os.Stat("pekorato")
if err != nil {
err = os.Mkdir("pekorato", 0777)
if err != nil {
panic(err)
}
}
err = os.Chdir(currentDir + "/pekorato")
if err != nil {
panic(err)
}
/********************************
Analysieren Sie Tweets und generieren Sie Bilder
********************************/
for i, tweet := range searchResult.Statuses {
mediaRawURL := tweet.ExtendedEntities.Media[0].Media_url_https
response, err := http.Get(mediaRawURL)
if err != nil {
panic(err)
}
defer response.Body.Close()
pekoPic, err := os.Create(fmt.Sprintf("pekora%d.jpg ", i))
if err != nil {
panic(err)
}
defer pekoPic.Close()
io.Copy(pekoPic, response.Body)
}
}
Dieses Mal habe ich die Twitter-API verwendet, um das Bild zu erhalten. Als nächstes dachte ich, ich würde versuchen, so etwas wie das getwitterte Bild einer bestimmten Person zu bekommen. Diejenigen, die es sahen, waren in Ordnung.
Recommended Posts