[JAVA] Holen Sie sich Twitter-Bilder mit twitter4j

Meist eine vollständige Kopie der Referenzseite, aber ein Memo

Bereiten Sie Folgendes im Ordner src vor

Code

twitter4j.properties

#
debug=false
oauth.consumerKey= ***
oauth.consumerSecret= ***
oauth.accessToken= ***
oauth.accessTokenSecret= ***

Holen Sie sich API-Token unter https://apps.twitter.com/.

GetTwitterImage.java

/**
 *Referenz: http://kikutaro777.hatenablog.com/entry/2014/01/26/110350
 *TWEET das Bild der Twitter-ID oder des in Word definierten Tags_Speichern Sie so viele wie NUM lokal.
 */

package oppai_image_get;

import java.io.FileOutputStream;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.nio.channels.Channels;
import java.nio.channels.ReadableByteChannel;
import java.text.DateFormat;
import java.text.SimpleDateFormat;

import twitter4j.*;

public class GetTwitterImage {

    //Anzahl der Akquisitionen
    static final int TWEET_NUM = 20;
    
    //Bilderweiterung gespeichert werden
    static final String TARGET_EXTENSION = ".jpg ";
    
    //Suchanfrage
    static final String Word = "aragaki_fun"; //Geben Sie die ID oder das Tag in Word an.
    static final String MY_QUERY = "from:" + Word;
    
    public static void main( String[] args ) throws TwitterException, MalformedURLException, IOException
    {
        Twitter twitter = new TwitterFactory().getInstance();
        
        //Suchausführung
        Query query = new Query(MY_QUERY);
        query.setCount(TWEET_NUM);
        QueryResult result = twitter.search(query);
        
        //Überprüfen und speichern Sie Informationen zu Medienentitäten in den Suchergebnissen
        for(Status sts : result.getTweets()){
            MediaEntity[] arrMedia = sts.getMediaEntities();
            for(MediaEntity media : arrMedia){
                //Ein Filter mit der Anzahl der Favoriten sieht gut aus
                //if(sts.getFavoriteCount() > 5)
                
                //Filtern Sie vorerst nur nach Erweiterung
                if(media.getMediaURL().endsWith(TARGET_EXTENSION)){
                    URL website = new URL(media.getMediaURL());
                    ReadableByteChannel rbc = Channels.newChannel(website.openStream());
                    //Fügen Sie dem Namen der Sicherungsdatei das Erstellungsdatum des Status hinzu
                    DateFormat df = new SimpleDateFormat("yyyyMMddHHmmssSSS");
                    FileOutputStream fos = 
                        new FileOutputStream("ImageFromTwitter" + df.format(sts.getCreatedAt()) + TARGET_EXTENSION);
                    fos.getChannel().transferFrom(rbc, 0, Long.MAX_VALUE);
                }
            }
        }
        System.out.println("Ausgabe abgeschlossen!");
    }

}

Ausführungsergebnis

スクリーンショット 2018-04-16 20.37.16.png

Das Bild von Yui Arakaki wurde sicher aufgenommen.

Referenz

http://kikutaro777.hatenablog.com/entry/2014/01/26/110350 http://java-beginner.com/practice-search-twitter/ http://nekonokotatsu.hatenablog.com/entry/2015/01/27/222653 https://qiita.com/yokoh9/items/760e432ebd39040d5a0f

Recommended Posts

Holen Sie sich Twitter-Bilder mit twitter4j
[Schienen] Speichern Sie Bilder mit Carrierwave
Abrufen des Datums ohne Verwendung der Kalenderklasse
Holen Sie sich PV (Ansichten) mit Impressionist ~ Rails
[Ethereum] Blockinformationen mit web3j abrufen