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).
Informationen zum Registrieren der Anwendung und zum Abrufen verschiedener Twitter-API-Schlüssel finden Sie unter Zusammenfassung der Verwendung der Twitter-API.
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
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)
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()
Recommended Posts