Crawlen mit Python und Twitter API 1-Einfache Suchfunktion

Motivation

Um mehr über das Crawlen und den Umgang mit APIs zu erfahren, habe ich beschlossen, ein Crawling-Tool für Twitter zu erstellen.

Umgebung

Die Umgebung für diese Entwicklung ist wie folgt.

MacBook Air (Retina, 13-inch, 2018) Prozessor 1,6 GHz Intel Core i5 Speicher 8 GB 2133 MHz LPDDR3

API-Installationsverfahren

Führen Sie die folgenden Schritte aus, um die API zu installieren.

  1. Holen Sie sich den Twitter API-Schlüssel
  2. Crawler-Montage

1. Holen Sie sich den Twitter API-Schlüssel

Holen Sie sich zunächst Ihren Twitter-API-Schlüssel auf dieser Website  Twitter Developers Nachdem Sie sich mit dem Konto angemeldet haben, für das Sie den API-Schlüssel hier haben möchten, klicken Sie auf App erstellen und dann auf Genehmigen. Danach werden Sie unterschiedlich gefragt, aber ich werde sie angemessen beantworten. Dann erhalten Sie die folgenden vier API-Schlüssel.

Consumer Key  Consumer Secret Key  Access Token  Access Secret Token

2. Crawler-Montage

Wir werden den Crawler so implementieren, dass er auch als Modul verwendet werden kann Erstellen Sie zunächst die folgende config.py.

config.py


Consumer_Key = "Comsumer Key"
Consumer_Secret_Key = "Consumer Secret Key"
Access_Token = "Access Token"
Access_Secret_Token = "Access Secret Token"

__init__.py



import

tweet_butler.py


from . import config
from requests_oauthlib import OAuth1Session
import json

tweet_butler.py


CK = config.Consumer_Key
CS = config.Consumer_Secret_Key
AT = config.Access_Token
AS = config.Access_Secret_Token

twitter = OAuth1Session(CK, CS, AT, AS)
params = { q : "Mit diesen Dateien implementieren wir dann den Crawler. Der Name der zu implementierenden Crawler-Datei lautet tweet_butler.py. Erstellen Sie diese in derselben Hierarchie wie die Datei config.py und implementieren Sie sie. Bitte beachten Sie, dass der Teil "from .import config" mit einem relativen Pfad importiert wird. Wenn keine "__init __. Py" -Datei vorhanden ist, tritt ein Importfehler auf. Die Datei config.py ist erforderlich, um den API-Schlüssel zu verwenden, und die Bibliothek request_oauthlib ist für die OAuth-Authentifizierung erforderlich. Da die API-Antwort als JSON-Datei zurückgegeben wird, importieren Sie außerdem die JSON-Bibliothek. Als nächstes suchen Sie mit der API. Suchbegriff" }
res = twitter.get(url, params = params)

Jetzt erhalten Sie die Antwort von der API. Stellen Sie dann sicher, dass der Statuscode 200 lautet, und rufen Sie den Text im JSON-Format ab.

if res.status_code == 200:
    search_result = json.loads(res.text)

Wir möchten diese Operationen als Klasse ausführen und bereiten daher eine neue Butler-Klasse vor.

Butler-Klasse

tweet_butler.py


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

Beim Empfang der Suchergebnisse gibt es einen Code namens "Tweet (Ergebnis)". Da es jedoch schwierig ist, Tweets im Wörterbuchformat zu verarbeiten, erstellen wir eine separate Tweet-Klasse und übergeben ihr ein Array vom Typ Wörterbuch.

Tweet Klasse

tweet_butler.py


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

Zu diesem Zeitpunkt benötigen wir nur den Text aus dem Tweet, sodass wir die Tweet-Klasse vereinfachen. Jetzt können Sie den Text abrufen, indem Sie get_text in der Liste der vom Butler empfangenen Tweets ausführen.

Fortsetzen

Als nächstes möchte ich Batler eine Funktion zum Durchsuchen des Benutzerprofils hinzufügen und eine Klasse für den Benutzer erstellen.

Referenz

[Crawler-Erstellung mit Twitter-API](https://datumstudio.jp/blog/twitterapi%E3%82%92%E7%94%A8%E3%81%84%E3%81%9F%E3%82%AF % E3% 83% AD% E3% 83% BC% E3% 83% A9% E3% 83% BC% E4% BD% 9C% E6% 88% 90) twitter developer

Recommended Posts

Crawlen mit Python und Twitter API 1-Einfache Suchfunktion
Crawlen mit Python und Twitter API 2-Implementierung der Benutzersuchfunktion
Suche nach Twitter-Tweets mit Python
Versuchen Sie, mit Python schnell und einfach auf die Twitter-API zuzugreifen
Ich habe versucht, Follow Management mit Twitter API und Python (einfach)
Sammeln von Informationen von Twitter mit Python (Twitter API)
Einfacher Slack API-Client mit Python
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
Sequentielle Suche mit Python
Dichotomie mit Python
Dichotomie mit Python 3
Suchen Sie Twitter mit Python
Automatisieren Sie UI-Tests mit Selenium API | Crawlen von Websites mit Python
Versuchen Sie, ein einfaches Spiel mit Python 3 und iPhone zu erstellen
[Python] Mit der API von Qiita erhalten Sie Benutzer- und Artikelinformationen
[Vagrant] Richten Sie einen einfachen API-Server mit Python ein
Twitter-Posting-Client mit Flask mit einfacher Anmeldefunktion
Führen Sie eine Twitter-Suche in Python durch und versuchen Sie, Sätze mit der Markov-Kette zu generieren.
Programmieren mit Python und Tkinter
Ver- und Entschlüsselung mit Python
Verwenden Sie die Trello-API mit Python
Python und Hardware-Verwenden von RS232C mit Python-
Twitter-Grafiknotiz mit Python
Vollbit-Suche mit Python
Unterstützen Sie sich mit der Twitter API
Rufen Sie die API mit python3 auf.
Python mit Pyenv und Venv
Suchmaschinen arbeiten mit Python
Verwenden Sie die Unterschall-API mit Python3
[Python] Suche nach Tiefenpriorität und Suche nach Breitenpriorität
Erfolgreiches update_with_media mit Twitter API
Optimieren Sie die Websuche mit Python
Funktioniert mit Python und R.
Einfache Verwendung der Nifty Cloud API mit Botocore und Python
Probieren Sie Amazon Simple Workflow Service (SWF) mit Python und boto3 aus
Lösen mit Ruby und Python AtCoder ABC151 D Suche nach Breitenpriorität
Einfache Erstellung von Verkaufstools mit Python-GUI: Suche nach Mitarbeiternummern
Optimieren Sie das Sammeln von Informationen mit Twitter API und Slack Bots
Webcrawlen, Web-Scraping, Zeichenerfassung und Speichern von Bildern mit Python
Sammeln von Informationen von Twitter mit Python (Integration von MySQL und Python)
Aggregieren und analysieren Sie Produktpreise mit der Rakuten Product Search API [Python]
Kommunizieren Sie mit FX-5204PS mit Python und PyUSB
Leuchtendes Leben mit Python und OpenCV
Ich habe eine einfache Schaltung mit Python gemacht (AND, OR, NOR, etc.)
Führen Sie Jupyter mit der REST-API aus, um Python-Code zu extrahieren und zu speichern
Roboter läuft mit Arduino und Python
Installieren Sie Python 2.7.9 und Python 3.4.x mit pip.
Neuronales Netzwerk mit OpenCV 3 und Python 3
AM-Modulation und Demodulation mit Python
Rubyist hat versucht, eine einfache API mit Python + Flasche + MySQL zu erstellen
Scraping mit Node, Ruby und Python
Holen Sie sich Bewertungen mit Python Googlemap API
Führen Sie Rotrics DexArm mit der Python-API aus
Scraping mit Python, Selen und Chromedriver