[PYTHON] Suchen und speichern Sie das Bild von Tomono Kafu von Twitter

Verwenden der Twitter-API-Bibliothek für Python mit dem Namen Tweepy von Twitter, Chino-chan Gochiusa [Weihrauch Ich habe ein Skript erstellt, um das Bild von [Fu Chino] zu suchen und zu speichern (http://www.gochiusa.com/contents/chara/chino.html).

Vorbereiten der Twitter-API

Informationen zum Registrieren der Anwendung und zum Abrufen verschiedener Twitter-API-Schlüssel finden Sie unter Zusammenfassung der Verwendung der Twitter-API.

Tweepy vorbereiten

Sie können Tweepy mit dem folgenden Befehl installieren (für pip).

$ pip install tweepy

Die Verwendung von Tweepy wird in Tweepy-Dokumentation beschrieben.

Zum Abrufen und Anzeigen Ihrer eigenen Zeitleiste:

import tweepy

CONSUMER_KEY        = 'Your Consumer Key'
CONSUMER_SECRET     = 'Your Consumer Secret'
ACCESS_TOKEN_KEY    = 'Your Access Token'
ACCESS_TOKEN_SECRET = 'Your Access Token Secret'

auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN_KEY, ACCESS_TOKEN_SECRET)
api = tweepy.API(auth)

public_tweets = api.home_timeline()
for tweet in public_tweets:
    print tweet.text

Suchen und Bilder abrufen

Sie können API.search () verwenden, um in Tweepy nach Schlüsselwörtern zu suchen. Gehen Sie wie folgt vor, um die URL des Bildes aus den Suchergebnissen abzurufen.

search_result = api.search(q=term)
for result in search_result:
    if result.entities.has_key('media'):
        for media in result.entities['media']:
            print media['media_url']

Schließlich lade ich das Bild von der URL des erfassten Bildes herunter. Sie können das nicht reduzierte Originalbild erhalten, indem Sie am Ende der Bild-URL : orig hinzufügen. (Referenz: Sie können das Originalbild erhalten, indem Sie: orig zur Bild-URL von Twitter hinzufügen (in einigen Fällen) --Yaruki Denized)

Skript erstellt

chino_image_downloader.py


# -*- coding: utf-8 -*-
import os
import tweepy
import urllib2

#=Zielverzeichnis für Bildspeicherung
IMAGES_DIR = './images/'

#=Twitter API-Schlüsseleinstellungen
CONSUMER_KEY        = os.environ.get('TWITTER_CONSUMER_KEY')
CONSUMER_SECRET     = os.environ.get('TWITTER_CONSUMER_SECRET')
ACCESS_TOKEN_KEY    = os.environ.get('TWITTER_ACCESS_TOKEN_KEY')
ACCESS_TOKEN_SECRET = os.environ.get('TWITTER_ACCESS_TOKEN_SECRET')

#=Suchbegriff
KEYWORDS = ['Tomono Kafu', 'Chino-Chan']

#=Suchoptionen
RETURN_PAR_PAGE = 100
NUMBER_OF_PAGES = 10

class ChinoImageDownloader(object):
    def __init__(self):
        super(ChinoImageDownloader, self).__init__()
        self.set_twitter_api()
        self.media_url_list = []

    def run(self):
        for keyword in KEYWORDS:
            self.max_id = None
            for page in range(NUMBER_OF_PAGES):
                self.download_url_list = []
                self.search(keyword, RETURN_PAR_PAGE)
                for url in self.download_url_list:
                    print url
                    self.download(url)

    def set_twitter_api(self):
        try:
            auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
            auth.set_access_token(ACCESS_TOKEN_KEY, ACCESS_TOKEN_SECRET)
            self.api = tweepy.API(auth)
        except Exception as e:
            print "[-] Error: ", e
            self.api = None

    def search(self, term, rpp):
        try:
            if self.max_id:
                search_result = self.api.search(q=term, rpp=rpp, max_id=self.max_id)
            else:
                search_result = self.api.search(q=term, rpp=rpp)
            for result in search_result:
                if result.entities.has_key('media'):
                    for media in result.entities['media']:
                        url = media['media_url_https']
                        if url not in self.media_url_list:
                            self.media_url_list.append(url)
                            self.download_url_list.append(url)
            self.max_id = result.id
        except Exception as e:
            print "[-] Error: ", e

    def download(self, url):
        url_orig = '%s:orig' % url
        filename = url.split('/')[-1]
        savepath = IMAGES_DIR + filename
        try:
            response = urllib2.urlopen(url_orig)
            with open(savepath, "wb") as f:
                f.write(response.read())
        except Exception as e:
            print "[-] Error: ", e

def main():
    try:
        downloader = ChinoImageDownloader()
        downloader.run()
    except KeyboardInterrupt:
        pass

if __name__ == '__main__':
    main()

Verweise

Recommended Posts

Suchen und speichern Sie das Bild von Tomono Kafu von Twitter
Holen Sie sich Bilder per Stichwortsuche von Twitter
Speichern Sie das Hundebild aus der Google-Bildsuche
Speichern Sie Bilder und Videos, die von der Twitter-Suche aufgerufen wurden, automatisch mit Pythonista3 auf dem iPhone
Speichern Sie automatisch Bilder Ihrer Lieblingsfiguren aus der Google Bildsuche mit Python
[Go language] Sammeln und speichern Sie Vtuber-Bilder mithilfe der Twitter-API
Crawlen mit Python und Twitter API 2-Implementierung der Benutzersuchfunktion
Generiere automatisch Bilder von Koala und Bär
Holen Sie sich Bilder von bestimmten Benutzern auf Twitter
Suchen Sie nach Pokemon Haunting Information von Twitter
[Python] Laden Sie das Originalbild von der Google Bildsuche herunter
Niedrigrangige Approximation von Bildern durch HOSVD und HOOI
Rauschunterdrückung und Hintergrundtransparenz von binärisierten Bildern
Speichern Sie Suchergebnisse auf Twitter in CSV.
Führen Sie eine Twitter-Suche in Python durch und versuchen Sie, Sätze mit der Markov-Kette zu generieren.
Extrahieren Sie Bilder und Tabellen mit Python aus PDF, um die Berichtslast zu verringern