Um mehr über das Crawlen und den Umgang mit APIs zu erfahren, habe ich beschlossen, ein Crawling-Tool für Twitter zu erstellen.
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
Führen Sie die folgenden Schritte aus, um die API zu installieren.
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
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.
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_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.
Als nächstes möchte ich Batler eine Funktion zum Durchsuchen des Benutzerprofils hinzufügen und eine Klasse für den Benutzer erstellen.
[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