在HTML页面中运行Twitter API流代码(Python)(单击按钮)
我有一段python代码,用于根据关键字通过Twitter API获取推文,并将其保存到JSON文件中: Python代码:在HTML页面中运行Twitter API流代码(Python)(单击按钮),python,html,api,twitter,Python,Html,Api,Twitter,我有一段python代码,用于根据关键字通过Twitter API获取推文,并将其保存到JSON文件中: Python代码: import json import tweepy from datetime import datetime from pytz import timezone import pytz # put your keys CONSUMER_KEY = '' CONSUMER_SECRET = '' ACCESS_TOKEN_KEY ='' ACCESS_TOKEN_SE
import json
import tweepy
from datetime import datetime
from pytz import timezone
import pytz
# put your keys
CONSUMER_KEY = ''
CONSUMER_SECRET = ''
ACCESS_TOKEN_KEY =''
ACCESS_TOKEN_SECRET = ''
# FILTER_KEYWORDS = ['manhattan' + 'nyc']
FILTER_KEYWORDS = ['Twitter']
#FILTER_LANGUAGES = ['en']
#FILTER_LOCATIONS_ALL=[-180,-90,180,90]
#FILTER_LOCATIONS_MANHATTAN=[-74.021248,40.698770 ,-73.905459, 40.872932]
class SimpleTweetStreamer:
def __init__(self):
try:
self.auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
self.auth.set_access_token(ACCESS_TOKEN_KEY, ACCESS_TOKEN_SECRET)
self.api = tweepy.API(self.auth)
self.sapi = tweepy.streaming.Stream(self.auth, CustomStreamListener(self.api))
self.sapi.filter(track=FILTER_KEYWORDS)
#self.sapi.filter(locations=FILTER_LOCATIONS_MANHATTAN, languages=FILTER_LANGUAGES)
except tweepy.error.TweepError as e:
print("Unable to authenticate", e)
class CustomStreamListener(tweepy.StreamListener):
def __init__(self, api):
self.api = api
def on_data(self, body):
try:
tweet = json.loads(body)
date_format = '%Y-%m-%d'
time_format = '%H:%M:%S'
ts = tweet['timestamp_ms']
date = datetime.fromtimestamp(int(ts)/1000, tz=pytz.timezone('EST'))
tweet['MYT_local_date'] = date.strftime(date_format)
tweet['MYT_local_time'] = date.strftime(time_format)
fileName = 'abc'+ '.json'
with open(fileName, 'a') as outfile:
json.dump(tweet, outfile)
outfile.write("\n")
outfile.flush()
outfile.close()
except:
pass
return True
def on_error(self, status_code):
print("[error] " + str(status_code))
return True # Don't kill the stream
def on_timeout(self):
return True # Don't kill the stream
if __name__ == "__main__":
t = SimpleTweetStreamer()
如何通过单击HTML页面中的按钮来运行此操作?如果我正确理解了您的问题,我认为您可以使用flask框架和Jinja模板引擎来获取所需的数据并调用想要调用的函数。假设您需要一个按钮来调用特定函数,可以执行以下操作: 首先安装烧瓶和Jinja 接下来,在python代码的主要部分:
from flask import Flask
app = Flask(__name__)
然后,您可以在类中拥有一个方法,该方法在单击按钮时执行所需操作:
@app.route("/some_operation", methods=['POST'])
def perform_some_operation():
最后,在html页面中,您可以调用perform_some_操作函数,如下所示:
<form method="POST" action="{{ url_for('perform_some_operation') }}"><button type="submit" name="submit" value="submit">StartSomeOperation</button></form>
StartSomeOperation