在HTML页面中运行Twitter API流代码(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

我有一段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_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