Python 3.x Tweepy:当用户在一定时间内没有发布tweet时,如何显示天气。(特金特,图形用户界面)
我用PythonTkinter编写了一个代码,它在一个GUI上显示了用户的最新推文和实际天气。所以我现在想要的是从twitter上的用户那里获取最新的推文,并在GUI上显示,只有当用户在特定时间内没有发布推文时,比如说15或30分钟,它才会显示实际的天气 代码:Python 3.x Tweepy:当用户在一定时间内没有发布tweet时,如何显示天气。(特金特,图形用户界面),python-3.x,tkinter,Python 3.x,Tkinter,我用PythonTkinter编写了一个代码,它在一个GUI上显示了用户的最新推文和实际天气。所以我现在想要的是从twitter上的用户那里获取最新的推文,并在GUI上显示,只有当用户在特定时间内没有发布推文时,比如说15或30分钟,它才会显示实际的天气 代码: import tweepy import datetime,time from tkinter import * import requests from bs4 import BeautifulSoup Achtergrond_
import tweepy
import datetime,time
from tkinter import *
import requests
from bs4 import BeautifulSoup
Achtergrond_Kleur = "#ffc642"
NS_Blauwe_kleur = "#0052a3"
ACCESS_TOKEN = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
ACCESS_TOKEN_SECRET = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
CONSUMER_KEY = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
CONSUMER_SECRET = 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'
auth = tweepy.OAuthHandler(CONSUMER_KEY, CONSUMER_SECRET)
auth.set_access_token(ACCESS_TOKEN, ACCESS_TOKEN_SECRET)
api = tweepy.API(auth)
url = "https://weather.com/nl-NL/weer/vandaag/l/b0484cf686f58dcdeb1b62424e98539b498c405ed0ba03872e513aea8abba7eb"
def main():
root = Tk()
root.geometry("1000x600")
app = Window(root)
root.mainloop()
class Window(Frame):
def __init__(self, master):
Frame.__init__(self, master)
self.master = master
self.init_window()
def init_window(self):
self.master.geometry('1000x600')
self.master.title('NS Moderatie')
self.pack(fill=BOTH, expand=1)
self.configure(bg='white')
self.image = PhotoImage(file="twitterns2.png")
self.image = self.image.subsample(2, 2)
self.image_label = Label(self, image=self.image)
self.image_label.place(relx=0.47, rely=0.65)
self.image_label.configure(background='white')
self.label = Label(self, bg=NS_Blauwe_kleur)
self.label.place(relx = 0, rely = 0.03, relwidth = 2, relheight = 0.12)
self.label = Label(self, text = "Beoordeling van NS-Reizigers", bg = NS_Blauwe_kleur, fg = 'white', font=('',30,''))
self.label.place(relx = 0.25, rely = 0.05)
self.overzichtlabel = Label(self, text = '', bg = 'white', font=('', 15, '') )
self.overzichtlabel.place(relx=0.25, rely=0.25, relwidth=0.50, relheight=0.50)
self.recentetweetslabel = Label(self, text = '', bg = 'white', font=('', 18, '') )
self.recentetweetslabel.place(relx=0, rely=0.20, relwidth = 1)
self.locationlabel = Label(self, bg = 'white', font = ('', 15, '') )
self.locationlabel.place(relx = 0.05, rely = 0.20)
self.temperatuurlabel = Label(self, bg = 'white', font = ('', 30, '') )
self.temperatuurlabel.place(relx = 0.05, rely = 0.27)
self.verwachtinglabel = Label(self, bg = 'white', font = ('', 15, '') )
self.verwachtinglabel.place(relx = 0.05, rely = 0.35)
self.neerslagsverwachting = Label(self, bg = 'white', font = ('', 12, '') )
self.neerslagsverwachting.place(relx = 0.05, rely = 0.40)
self.get_tweets()
self.get_weather()
def get_tweets(self):
tweets = api.user_timeline("username", count = '5')
if tweets != []:
self.recentetweetslabel ['text'] = 'Meest recente tweets van reizigers'
print_tweets = ''
for tweet in tweets:
print_tweets += tweet.text + "\n" + "\n"
self.overzichtlabel ['text'] = print_tweets
def get_weather(self):
self.page = requests.get(url)
self.soup = BeautifulSoup(self.page.content, "html.parser")
self.location = self.soup.find('h1', class_ = "CurrentConditions--location--1Ayv3").text
self.temperatuur = self.soup.find('span', class_ = "CurrentConditions--tempValue--3KcTQ").text
self.verwachting = self.soup.find('div', class_ = "CurrentConditions--phraseValue--2xXSr").text
# neerslag = soup.find('div', class_ = "CurrentConditions--precipValue--RBVJT").text
self.locationlabel.config(text = self.location)
self.temperatuurlabel.config(text = self.temperatuur)
self.verwachtinglabel.config(text = self.verwachting)
# neerslagsverwachting.config(text = neerslag)
self.temperatuurlabel.after(60000, self.get_weather)
self.update()
main()