[PYTHON] Recherchez et enregistrez l'image de Tomono Kafu depuis Twitter

Utilisation de la bibliothèque API Twitter pour Python appelée Tweepy, de Twitter, [Incense] de Chino-chan Gochiusa J'ai créé un script pour rechercher et enregistrer l'image de Fu Chino.

Préparer l'API Twitter

Reportez-vous au Résumé de l'utilisation de l'API Twitter pour enregistrer l'application et obtenir diverses clés API Twitter.

Préparation de Tweepy

Vous pouvez installer Tweepy avec la commande suivante (pour pip).

$ pip install tweepy

L'utilisation de Tweepy est décrite dans la Documentation Tweepy.

Par exemple, pour obtenir et afficher votre propre chronologie:

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

Rechercher et obtenir des images

Utilisez ʻAPI.search () `pour rechercher des mots-clés dans Tweepy. Pour obtenir l'URL de l'image à partir des résultats de la recherche, procédez comme suit.

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']

Enfin, je télécharge l'image depuis l'URL de l'image acquise, Si vous ajoutez : orig à la fin de l'URL de l'image, vous pouvez obtenir l'image d'origine qui n'a pas été réduite. (Référence: Vous pouvez obtenir l'image originale en ajoutant: orig à l'URL de l'image de Twitter (dans certains cas) --Yaruki Denized)

Script créé

chino_image_downloader.py


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

#=Répertoire de destination d'enregistrement d'image
IMAGES_DIR = './images/'

#=Paramètres de la clé API Twitter
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')

#=Mot-clé de recherche
KEYWORDS = ['Tomono Kafu', 'Chino-chan']

#=Options de recherche
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()

Les références

Recommended Posts

Recherchez et enregistrez l'image de Tomono Kafu depuis Twitter
Obtenez des images par recherche par mot-clé sur Twitter
Enregistrer l'image du chien à partir de la recherche d'images Google
Enregistrez automatiquement les images et les vidéos touchées par la recherche Twitter sur l'iPhone à l'aide de Pythonista3
Enregistrez automatiquement les images de vos personnages préférés à partir de la recherche d'images Google avec Python
[Go language] Collectez et enregistrez des images Vtuber à l'aide de l'API Twitter
Exploration avec Python et Twitter API 2-Implémentation de la fonction de recherche d'utilisateurs
Extraire des images des ensembles de données Cifar et CUCUMBER-9
Générez automatiquement des images de koala et d'ours
Obtenez des images d'utilisateurs spécifiques sur Twitter
Rechercher des informations sur Pokemon Haunting sur Twitter
[Python] Téléchargez l'image d'origine à partir de la recherche d'images Google
Approximation de bas rang des images par HOSVD et HOOI
Suppression du bruit et transparence de l'arrière-plan des images binarisées
Enregistrez les résultats de la recherche sur Twitter au format CSV.
Effectuez une recherche Twitter à partir de Python et essayez de générer des phrases avec la chaîne de Markov.
Extraire des images et des tableaux de pdf avec python pour réduire la charge de reporting