[PYTHON] Ich habe versucht, ein Skript zu erstellen, das die Tweets eines bestimmten Benutzers auf Twitter verfolgt und das veröffentlichte Bild sofort speichert

Einführung

Ich dachte, es wäre großartig, wenn es ein Programm gäbe, das die Tweets des Benutzers auf Twitter verfolgen und die geposteten Bilder sofort speichern könnte. Dieses Programm verwendet Python 2.7, das ich gerade studiere. Ich denke, es wird funktionieren, wenn Sie eine Python2-Ausführungsumgebung haben.

Spezifikation

Grundsätzlich werden der API-Schlüssel Ihres Twitter-Kontos, die ID des Kontos des Benutzers, den Sie zurückverfolgen möchten, und die Anzahl der zurückverfolgbaren Tweets im Programm angegeben und ausgeführt. Es scheint, dass die maximale Anzahl von Tweets, die von einem Benutzer zurückverfolgt werden können, aufgrund von API-Einschränkungen bis zu den neuesten 3200 Tweets beträgt. Es werden auch mehrere Bildposting-Tweets unterstützt, GIFs, Videos usw. werden jedoch nicht gespeichert. Wenn Sie einen Benutzer mit einem Schlüsselkonto ansprechen, benötigen Sie die API des Kontos, das diesem Benutzer folgt.

Code

imgcrawler_twi.py


#coding: UTF-8
from requests_oauthlib import OAuth1Session
import json
import twitkey
import requests
import sys, urllib
import os.path
import time

twitter = OAuth1Session(twitkey.twkey["CONSUMER_KEY"],
                        twitkey.twkey["CONSUMER_SECRET"],
                        twitkey.twkey["ACCESS_TOKEN"],
                        twitkey.twkey["ACCESS_TOKEN_SECRET"]
                        )
#Separate Datei twitkey.Beziehen Sie sich auf jeden erforderlichen Parameterwert von py.

Get_Count = 17 #Get_Geben Sie an, wie oft der Tweet in Count erfasst wird
Get_At_Once = 200 #Get_At_Geben Sie die Anzahl der Tweets an, die bei einer Erfassung einmal zurückverfolgt werden können
User_Id = "" #User_Geben Sie die ID des Benutzers an, der das Bild bis zum ID-Beispiel zurückverfolgen möchte:github
Path = "" #Geben Sie im Pfadbeispiel den Dateipfad des Verzeichnisses an, in dem Sie das Bild speichern möchten:./Images/

for i in range(1,Get_Count):
    if(i==1):
        params = {"count":Get_At_Once}
    else:
        params = {"count":Get_At_Once,"max_id":num}
    req = twitter.get("https://api.twitter.com/"
                      "1.1/statuses/user_timeline.json"
                      "?screen_name=%s&include_rts=false" % User_Id,
                      params=params)
    timeline = json.loads(req.text)
    if(req.status_code == 200):
        if(i==1):
            counter=1
        else:
            counter=count
        for tweet in timeline:
            print counter
            print tweet["text"]
            num = tweet["id"]
            counter=counter+1
            if("extended_entities" in tweet.keys()):
                if("media" in tweet["extended_entities"].keys()):
                    print len(tweet["extended_entities"]["media"])
                    for i in range(0,len(tweet["extended_entities"]["media"])):
                        if("type" in tweet["extended_entities"]["media"][i].keys()):
                            if(tweet["extended_entities"]["media"][i]["type"]=="photo"):
                                print tweet["text"]
                                url = tweet["extended_entities"]["media"][i]["media_url_https"]
                                img = urllib.urlopen(url)
                                Name = tweet["user"]["name"]
                                created_at = tweet["created_at"]
                                Month = created_at[4:7]
                                Date = created_at[8:10]
                                Hour = created_at[11:13]
                                Minute = created_at[14:16]
                                Second = created_at[17:19]
                                Year = created_at[26:]
                                img_name = Name+"_"+Year+"_"+Month+"_"+Date+"_"+Hour+"_"+Minute+"_"+Second
                                localfile = open(Path + img_name +"_"+str(i)+".jpg ", 'wb')
                                localfile.write(img.read())
                                img.close()
                                localfile.close()
            else:
                print "No Image"
        count=counter
    else:
        print (req.status_code)
        time.sleep(240)
        #Fehlerbehandlung

twitkey.py


#coding: UTF-8
twkey = {
    "CONSUMER_KEY": "",
    "CONSUMER_SECRET": "",
    "ACCESS_TOKEN": "",
    "ACCESS_TOKEN_SECRET": ""
}

#Bitte geben Sie jeden Parameter ein

Codebeschreibung

Über twitkey.py

Geben Sie in twitkey.py den API-Schlüssel Ihres Twitter-Kontos ein. Das hier verwendete Konto kann entweder aufgegeben oder echt sein. Es sind vier Parameterwerte erforderlich, die Sie jedoch leicht überprüfen können.

Die vier diesmal erforderlichen Werte sind CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN und ACCESS_TOKEN_SECRET.

Zur Bestätigung des API-Schlüssels ist diese Seite hilfreich. http://phiary.me/twitter-api-key-get-how-to/

Über imgcrawler_twi.py

Das Programm enthält vier Parameterwerte. Geben Sie jeweils die erforderlichen Werte an.

Get_Count =  
Get_At_Once =  
User_Id = "" 
Path = "" 

Über "Get_Count" und "Get_At_Once"

Verwenden Sie "Get_Count" und "Get_At_Once", um die Anzahl der zurückzusendenden Tweets anzugeben. Im Einzelnen ist es so, als würde man zum "Get_At_Once" -Tweet "Get_Count-1" zurückkehren. Die Anzahl der Tweets, die gleichzeitig zurückverfolgt werden können, ist auf 200 begrenzt. Daher beträgt der Maximalwert von "Get_At_Once" 200. Gemäß der Spezifikation gibt es eine Beschränkung, dass Sie nur zu den neuesten 3200 Tweets pro Benutzer zurückkehren können. Stellen Sie daher sicher, dass "Get_Count-1" x "Get_At_Once" 3200 oder weniger beträgt. Wenn Sie viel zurückgehen möchten, empfehlen wir, 17 für "Get_Count" und 200 für "Get_At_Once" anzugeben.

Über "User_Id"

Geben Sie unter "User_Id" die ID des Benutzers an, der das Bild verfolgen möchte. Zum Beispiel sieht es aus wie "Github".

Über "Pfad"

Geben Sie unter "Pfad" den Dateipfad des Ordners an, in dem das Bild gespeichert werden soll. Natürlich können Sie es überall speichern, aber erstellen Sie beispielsweise einen Ordner mit dem Namen "Images" im selben Verzeichnis wie der Code und verwenden Sie ihn als "./Images/".

Über den Speichernamen des Bildes

"Kontoname des Benutzers" _ "Tweet-Datum und -Uhrzeit (Jahr, Monat, Tag, Stunde, Minute, Sekunde)" _ "0 bis 3 (dies ist die Nummerierung bei Tweets mit mehreren angehängten Bildern)".

Da das Datum und die Uhrzeit des Tweets in der Londoner Zeit ermittelt werden, gibt es einen Zeitunterschied von 9 Stunden.

Lauf

Speichern Sie twitkey .py und imgcrawler_twi.py im selben Verzeichnis und führen Sie imgcrawler_twi.py aus. Es ist erfolgreich, wenn das Bild erfolgreich in dem von Ihnen angegebenen Ordner gespeichert wurde.

スクリーンショット 2017-03-22 20.19.29.png

Andere

Setzen Sie dieses Modul beim Laufen ein! Sie können wütend werden. Versuchen Sie in diesem Fall, Module wie "request" und "request-oauthlib" vor der Ausführung mit pip hinzuzufügen.

Ich habe auch das Repository dieses Crawlers auf github gepostet. Bitte schau es dir an! !! https://github.com/tyokuyoku/Twitter_Images_Crawler

Recommended Posts

Ich habe versucht, ein Skript zu erstellen, das die Tweets eines bestimmten Benutzers auf Twitter verfolgt und das veröffentlichte Bild sofort speichert
Ich habe "Ich habe versucht, ein Skript zu erstellen, das gepostete Bilder sofort speichert, indem ich zu den Tweets eines bestimmten Benutzers auf Twitter zurückgekehrt bin" überarbeitet.
Ich habe eine Twitter-App erstellt, die das Bild eines bestimmten Charakters auf der Twitter-Timeline durch Pytorch-Transfer-Lernen identifiziert und speichert
So erstellen Sie einen Raspberry Pi, der die Tweets eines bestimmten Benutzers spricht
Ich habe versucht, eine Site zu erstellen, mit der die aktualisierten Informationen von Azure einfach angezeigt werden können
[Python] Ich habe versucht, mit argparse ein einfaches Programm zu erstellen, das in der Befehlszeile funktioniert
[Twitter] Ich möchte die heruntergeladenen vergangenen Tweets (meines Kontos) in eine schöne CSV verwandeln
[An die Herren auf Twitter] Ich habe ein Skript geschrieben, um .jpg-large sofort in .jpg zu konvertieren.
Holen Sie sich viele Twitter-Tweets auf einmal
Die Geschichte der IPv6-Adresse, die ich auf ein Minimum beschränken möchte
Ich möchte gleichzeitig einen Musik-Player erstellen und Musik ablegen
Ich habe versucht, einen Übersetzungs-BOT zu erstellen, der mit Discord unter Verwendung von Googletrans funktioniert
Ich habe versucht, eine einfache Bilderkennungs-API mit Fast API und Tensorflow zu erstellen
[LPIC 101] Ich habe versucht, die Befehlsoptionen zusammenzufassen, die leicht zu Fehlern führen können
Ich habe versucht, mit dem Seq2Seq-Modell von TensorFlow so etwas wie einen Chatbot zu erstellen
Ich habe versucht, das Update von "Werde ein Romanautor" mit "IFTTT" und "Werde ein Romanautor API" zu benachrichtigen.
Ich habe versucht, das Telefon klingeln zu lassen, als es auf dem IoT-Post veröffentlicht wurde
Ein Skript, das Tweets mit bestimmten Schlüsselwörtern auf Twitter in Echtzeit an Slack überträgt.
Ich habe versucht, es einfach zu machen, die Einstellung des authentifizierten Proxys auf Jupyter zu ändern
So extrahieren Sie Daten in einer bestimmten Spalte in einem bestimmten Blatt in mehreren Excel-Dateien gleichzeitig und fügen Sie die Daten in jede Spalte in einer Zeile ein
Ich habe versucht, zum Zeitpunkt der Bereitstellung mit Fabric und ChatWork Api automatisch in ChatWork zu posten
Ich habe ein Tool erstellt, um die Antwortlinks von OpenAI Gym auf einmal zu erhalten
Python-Skript, das von der Google-Suche zum sofortigen Speichern der Suchergebnisseite führt
Wie man einen bestimmten Prozess am Anfang und Ende der Spinne mit Scrapy einfügt
Ich habe versucht, die Entropie des Bildes mit Python zu finden
Ein Python-Skript, das ein GTK-Bild (Clipboard) in einer Datei speichert.
Ich habe versucht, das Python-Skript unter Windows 10 von 2.7.11 auf 3.6.0 zu ändern
Ich habe ein Skript geschrieben, das das Bild in zwei Teile teilt
Veröffentlichen Sie das erstellte Shell-Skript, um die Probleme beim Erstellen von LiveUSB unter Linux zu verringern
Ich habe einen Linienbot erstellt, der das Geschlecht und das Alter einer Person anhand des Bildes errät
Die Geschichte, ein Tool zu erstellen, das auf Mac und Windows auf der Spieleentwicklungsseite ausgeführt wird
Ich habe versucht, eine SATA-Software-RAID-Konfiguration zu erstellen, die das Betriebssystem unter Ubuntu Server startet
Ich habe versucht, eine Serverumgebung zu erstellen, die unter Windows 10 ausgeführt wird
Ich habe versucht, mit Python einen regulären Ausdruck für "Betrag" zu erstellen
Ich habe versucht, mit Python einen regulären Ausdruck von "Zeit" zu erstellen
Ich habe versucht, das SD-Boot-Image von LicheePi Nano zu erstellen
Ich habe versucht, mit Python einen regulären Ausdruck von "Datum" zu erstellen
Ich habe die Tweets über den neuen Corona-Virus analysiert, die auf Twitter Teil 2 veröffentlicht wurden
Ich habe versucht, einen Sender auf der IoT-Plattform "Rimotte" zu registrieren.
Ich habe versucht, ein Standbild aus dem Video auszuschneiden
Ich habe versucht, mit Go einen exklusiven Kontrollmechanismus zu erstellen
[Python] Erstellen Sie ein Skript, das FeedParser und LINE Notify verwendet, um LINE über die neuesten Informationen zum neuen Koronavirus des Ministeriums für Gesundheit, Arbeit und Soziales zu informieren.
Ich habe die Tweets über den neuen Corona-Virus analysiert, die auf Twitter Teil 2 veröffentlicht wurden
(Jetzt) Ich habe versucht, das neue Koronavirus (COVID-19) zu analysieren.
Ich habe versucht, ein Skript zu erstellen, das die Tweets eines bestimmten Benutzers auf Twitter verfolgt und das veröffentlichte Bild sofort speichert
Ich habe versucht, PDF-Daten der medizinischen Online-Versorgung zu verwenden, die auf der Ausbreitung einer neuen Coronavirus-Infektion basieren
Ich habe das Bild der Science University auf Twitter mit Word2Vec überprüft.
Zeichnen Sie die Ausbreitung des neuen Koronavirus
Holen Sie sich nur Bild-Tweets auf Twitter
Ich habe "Ich habe versucht, ein Skript zu erstellen, das gepostete Bilder sofort speichert, indem ich zu den Tweets eines bestimmten Benutzers auf Twitter zurückgekehrt bin" überarbeitet.
Ich habe versucht, das Verhalten des neuen Koronavirus mit dem SEIR-Modell vorherzusagen.
Folding @ Home unter Linux Mint soll zur Analyse des neuen Corona-Virus beitragen
Ich bin auf die Hatena Keyword API gestoßen
Veröffentlichen Sie das Thema Google Mail auf Twitter
Schätzen Sie die maximale Infektiosität des neuen Coronavirus ab
Die epidemische Vorhersage des neuen Koronavirus wurde mit explosiver Geschwindigkeit im Internet veröffentlicht
Ich habe versucht, den Grad der Koronavirusinfektion auf der Seekarten-Wärmekarte anzuzeigen
Ich habe versucht, die Literatur des neuen Corona-Virus mit Python automatisch an LINE zu senden
Ich habe versucht, den Unterschied zwischen Config vor und nach der Arbeit mit pyATS / Genie selbst erstelltem Skript zu berücksichtigen
Ich habe versucht, das Gesichtsbild mit sparse_image_warp von TensorFlow Addons zu transformieren
Ich habe versucht, das Bild durch Klicken mit der rechten und linken Maustaste in den angegebenen Ordner zu verschieben
Ich habe versucht, die Trefferergebnisse von Hachinai mithilfe der Bildverarbeitung zu erhalten
Ich habe versucht, die Altersgruppe und die Ratenverteilung von Atcoder zu visualisieren
zoom Ich habe versucht, den Grad der Aufregung der Geschichte auf der Konferenz zu quantifizieren
Ich habe versucht, die Phase der Geschichte mit COTOHA zu extrahieren und zu veranschaulichen
Ich habe versucht, die Beschleunigung von Python durch Cython zu verifizieren und zu analysieren
Die Geschichte der Erstellung von Botonyan, das den Inhalt von Google Text & Tabellen als Antwort auf ein bestimmtes Keyword in Slack zurückgibt