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.
Reportez-vous au Résumé de l'utilisation de l'API Twitter pour enregistrer l'application et obtenir diverses clés API Twitter.
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
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)
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()
Recommended Posts