Crawlen mit Python und Twitter API 2-Implementierung der Benutzersuchfunktion

Was ist diesmal zu tun?

Bis zum letzten Mal haben wir die Butler-Klasse für die einfache Suche nach Tweets und die Tweet-Klasse für die Verarbeitung von Tweets implementiert. Dieses Mal möchte ich die Funktion implementieren, um nach Benutzer und der Benutzerklasse in der Butler-Klasse zu suchen.

Implementierung bis zum letzten Mal

Ich werde den Code zuerst bis zum letzten Mal einfügen.

tweet_butler.py


from . import config
from requests_oauthlib import OAuth1Session
import json

class Butler:
    def __init__(self,setting = config):
        self.api = OAuth1Session(setting.Consumer_Key, setting.Consumer_Secret_Key, setting.Access_Token, setting.Access_Secret_Token)
        self.search_url = "https://api.twitter.com/1.1/search/tweets.json"

    def search(self,word,count=10):
        params = {"q":word,"count":count}
        res = self.api.get(self.search_url, params = params)
        if res.status_code == 200:
            search_results = json.loads(res.text)
        tweets = [Tweet(result) for result in search_results["statuses"]]
        return tweets

class Tweet:
    def __init__(self,tweet):
        self.dict = tweet
        self.tweet_id = tweet["id"]
        self.user_id = tweet["user"]["id"]
        self.user_name = tweet["user"]["screen_name"]
        self.text = tweet["text"]
        self.created_at = tweet["created_at"]
        self.favorite_count = tweet["favorite_count"]
        self.hashtags = tweet["entities"]["hashtags"]
        self.symbols = tweet["entities"]["symbols"]
        self.mention = tweet["entities"]["user_mentions"]

    def get_text(self):
        return self.text

Benutzersuchmethode

Sie können die API einfach durchsuchen, indem Sie eine GET-Anforderung an eine URL senden. Bei der Suche nach Benutzern scheint es die folgenden drei Methoden zu geben. ・ Benutzer / Suche ・ Benutzer / Suche ・ Benutzer / Show Suche sucht nach Benutzern, die ein Wort treffen, zeigt nur einen Benutzer mit derselben ID und demselben Bildschirmnamen aus, sucht nach mehreren Personen in der Anzeige und listet in ID und Bildschirmname auf. Kann eingegeben werden. Keiner von ihnen ist schwer zu implementieren, aber dieses Mal werden wir zuerst show verwenden.

Implementierung der Benutzersuchfunktion

Das erste, was Sie benötigen, ist ein API-Token. Dies wurde letztes Mal erklärt, also werde ich es weglassen. Crawlen mit Python und Twitter API 1 - Einfache Suchfunktion

Als nächstes folgt die Ressourcen-URL für Benutzer / Show.  https://api.twitter.com/1.1/users/show.json Sie müssen auch wissen, welche JSON-Dateien Sie in diese API einfügen, um sie zu implementieren.


{
  "Name": "name",
  "user_id": "id",
  "screen_name": "screen_name",
  "include_entities": "include_entities",
}

Die obigen vier Elemente können als Eingabe für die JSON-Datei verwendet werden. Von diesen ist immer einer von "Name, Benutzer-ID, Bildschirmname" erforderlich.

Der Rest ist die Umsetzung. Dies ist nicht viel anders als beim letzten Mal. Implementieren Sie als Methode der Butler-Klasse. Butler.get_user_by_id() Erstens ist es eine Methode, um den Benutzer mithilfe von showAPI von der ID abzurufen.

tweet_butler.py


class Butler:
    def __init__(self, setting = config):
        self.get_user_url = "https://api.twitter.com/1.1/users/show.json"
              :
              :

    def get_user_by_id(self, id):
        params = {"user_id":user_id}
        res = self.api.get(self.get_user_url, params = params)
        if res.status_code == 200:
            search_results = json.loads(res.text)
        else:
            assert False, "{} error happen in get_user_by_id method".format(res.status_code)
        return User(search_results)

Butler.get_user_by_name Als nächstes folgt die Methode, um den Benutzer von "screen_name" abzurufen. Die verwendete API ist dieselbe

tweet_butler.py


        :
        :
def get_user_by_name(self,name):
        params = "Name":name}
        res = self.api.get(self.get_user_url, params =params)
        if res.status_code == 200:
            search_results = json.loads(res.text)
        else:
            assert False, "{} error happen in get_user_by_name method".format(res.status_code)
        return User(search_results)

Implementierung der Benutzerklasse

Dieses Mal werde ich der Benutzerklasse keine große Sache auferlegen.

tweet_butler.py



class User:
    def __init__(self, user_dict):
        self.dict = user_dict
        self.id = user_dict["id"]
        self.name = user_dict["name"]
        self.screen_name = user_dict["screen_name"]

Es tut mir leid für die Auslassung.

Verbesserungen der Tweet-Klasse

Es scheint, dass das Benutzerobjekt in dem in der Antwort zurückgegebenen Tweet-Objekt enthalten ist. Fügen Sie daher eine neue Methode get_user als Methode der Tweet-Klasse hinzu. Ich habe auch einige der Klassenvariablennamen geändert.

tweet_butler.py


class Tweet:
    def __init__(self,tweet):
        self.dict = tweet
        self.id = tweet["id"]
        self.user_id = tweet["user"]["id"]
        self.user_name = tweet["user"]["screen_name"]
        self.text = tweet["text"]
        self.created_at = tweet["created_at"]
        self.favorite_count = tweet["favorite_count"]
        self.hashtags = tweet["entities"]["hashtags"]
        self.symbols = tweet["entities"]["symbols"]
        self.mention = tweet["entities"]["user_mentions"]
    
    def get_text(self):
        return self.text
    
##########Der folgende Teil wurde neu hinzugefügt###########
    def get_user(self):
        return User(self.dict["user"])


Fortsetzen

Als nächstes möchte ich die Suche nach Benutzern mithilfe der Benutzer- / Such-API aktivieren und Tweets eines bestimmten Benutzers abrufen können.

Referenz

Tweets von bestimmten Benutzern auf Twitter abrufen twitter developer

Recommended Posts

Crawlen mit Python und Twitter API 2-Implementierung der Benutzersuchfunktion
Crawlen mit Python und Twitter API 1-Einfache Suchfunktion
TRIE-Baumimplementierung mit Python und LOUDS
Verwenden Sie die Twitter-API mit Python
Suche nach Twitter-Tweets mit Python
[Python] Mit der API von Qiita erhalten Sie Benutzer- und Artikelinformationen
Erstellen Sie einen API-Server, um den Betrieb der Front-Implementierung mit Python3 und Flask zu überprüfen
Versuchen Sie, mit Python schnell und einfach auf die Twitter-API zuzugreifen
Ich habe versucht, Follow Management mit Twitter API und Python (einfach)
Einführung und Implementierung der Aktivierungsfunktion
Implementierung der Dyxtra-Methode durch Python
Koexistenz von Python2 und 3 mit CircleCI (1.0)
Implementierung von CRUD mithilfe der REST-API mit Python + Django Rest Framework + igGrid
Sammeln von Informationen von Twitter mit Python (Twitter API)
Holen Sie sich Artikelbesuche und Likes mit Qiita API + Python
[Unity (C #), Python] Memo zur API-Kommunikationsstudie ③ Implementierung einer vereinfachten Anmeldefunktion
Suchen und laden Sie YouTube-Videos automatisch mit Python herunter
Kausales Denken und kausale Suche von Python (für Anfänger)
Ich habe Funktionssynthese und Curry mit Python versucht
Holen Sie sich den Betreff und den Text von Google Mail mit der Python- und Google Mail-API
Fortsetzung der Multi-Plattform-Entwicklung mit Electron und Python
Erläuterung der Bearbeitungsentfernung und Implementierung in Python
Beispiel für das Lesen und Schreiben von CSV mit Python
Deep Learning von Grund auf neu Die Theorie und Implementierung des mit Python erlernten Deep Learning Kapitel 3
Sequentielle Suche mit Python
Automatisieren Sie UI-Tests mit Selenium API | Crawlen von Websites mit Python
Holen Sie sich mit Python eine große Menge von Starbas Twitter-Daten und probieren Sie die Datenanalyse Teil 1 aus
[Python of Hikari-] Kapitel 06-02 Funktion (Argument und Rückgabewert 1)
Führen Sie eine Twitter-Suche in Python durch und versuchen Sie, Sätze mit der Markov-Kette zu generieren.
Laden Sie mp4 einfach teilweise mit Python und youtube-dl herunter!
[# 2] Mach Minecraft mit Python. ~ Modellzeichnung und Player-Implementierung ~
Visualisieren Sie den Bereich der internen und externen Einfügungen mit Python
Automatisches Folgen auf Twitter mit Python und Selen! (RPA)
Zweite Hälfte des ersten Tages des Python-Studiums Versuchen Sie, die Twitter-API mit Bottle zu erreichen
Dichotomie mit Python
Dichotomie mit Python 3
Suchen Sie Twitter mit Python
Suchen und speichern Sie das Bild von Tomono Kafu von Twitter
Vergleich von CoffeeScript mit JavaScript-, Python- und Ruby-Grammatik
Versionsverwaltung von Node, Ruby und Python mit anyenv
[Python Seaborn Graph Library] Informationen zur Benutzerwarnung von axes.color_cycle ist veraltet und wird durch axes.prop_cycle ersetzt
Einfache Verwendung der Nifty Cloud API mit Botocore und Python
Python-Implementierung des CSS3-Mischmodus und Diskussion über den Farbraum
Führen Sie mit Python und Matplotlib eine Isostromanalyse offener Wasserkanäle durch
Lösen mit Ruby und Python AtCoder ABC151 D Suche nach Breitenpriorität
Verknüpfen Sie Python Enum mit einer Funktion, um es aufrufbar zu machen
Berühren wir die API der Netatmo Weather Station mit Python. #Python #Netatmo
Befreien Sie sich mit Python und regulären Ausdrücken von schmutzigen Daten
Erkennen Sie mit Python Objekte einer bestimmten Farbe und Größe
Optimieren Sie das Sammeln von Informationen mit Twitter API und Slack Bots
Webcrawlen, Web-Scraping, Zeichenerfassung und Speichern von Bildern mit Python
[Mit einfacher Erklärung] Scratch-Implementierung einer Deep Boltsman-Maschine mit Python ②
[Mit einfacher Erklärung] Scratch-Implementierung einer tiefen Boltzmann-Maschine mit Python ①
Anfänger der Google Maps API und der Twitter API haben "Tweet Map" erstellt.
Sammeln von Informationen von Twitter mit Python (Integration von MySQL und Python)
Beispiel für das Parsen von HTTP GET und JSON mit Pfefferpython
Spielen Sie mit dem Passwortmechanismus von GitHub Webhook und Python
Aggregieren und analysieren Sie Produktpreise mit der Rakuten Product Search API [Python]
Programmieren mit Python und Tkinter