|
|
|
@ -32,21 +32,24 @@ def find_indicate_bs4(url): |
|
|
|
|
soup = BeautifulSoup(response.text, 'html.parser') |
|
|
|
|
|
|
|
|
|
# 使用CSS選擇器找到元素 |
|
|
|
|
element = soup.select("tr",class_ ='item-fact-row' ) |
|
|
|
|
|
|
|
|
|
return element[1].text.split('+')[0]+" "+element[1].text.split('+')[1] |
|
|
|
|
# element = soup.select("tr",class_ ='item-fact-row' ) |
|
|
|
|
print(soup) |
|
|
|
|
# return element[1].text.split('+')[0]+" "+element[1].text.split('+')[1] |
|
|
|
|
def find_indicate(url): |
|
|
|
|
from selenium import webdriver |
|
|
|
|
from selenium.webdriver.common.by import By |
|
|
|
|
from selenium.webdriver.chrome.options import Options |
|
|
|
|
from selenium.webdriver.support.ui import WebDriverWait |
|
|
|
|
from selenium.webdriver.support import expected_conditions as EC |
|
|
|
|
import time |
|
|
|
|
options = Options() |
|
|
|
|
# options.add_argument("--headless") # 啟用無頭模式 |
|
|
|
|
driver =webdriver.Chrome(options=options) |
|
|
|
|
driver.get(url) |
|
|
|
|
# time.sleep(3) |
|
|
|
|
chat = driver.find_element(By.XPATH, '//*[@id="home"]/div[2]/div/div/div[1]/table/tbody/tr[13]/td[6]') |
|
|
|
|
return chat.text |
|
|
|
|
date = driver.find_element(By.XPATH, '//*[@id="test"]/div[2]/article/div/div/div[1]/div[2]/div/div[1]/div/table/tbody/tr[1]/td[1]') |
|
|
|
|
value = driver.find_element(By.XPATH, '//*[@id="test"]/div[2]/article/div/div/div[1]/div[2]/div/div[1]/div/table/tbody/tr[1]/td[2]') |
|
|
|
|
return date.text , value.text |
|
|
|
|
|
|
|
|
|
# 是一個持續運行的迴圈,不斷從Telegram伺服器抓取新的消息 |
|
|
|
|
# 然後使用上面定義的消息處理器來處理這些消息。 |
|
|
|
@ -93,13 +96,21 @@ def broadcast_all(target:str): |
|
|
|
|
broadcast_message( |
|
|
|
|
f"Now :{datetime.fromtimestamp(time.time())} , Spend time :{str(round(endtimee - startimee, 3))} s", |
|
|
|
|
"-1002033782195") |
|
|
|
|
|
|
|
|
|
def broadcast_all_sele(target:str): |
|
|
|
|
startimee = time.time() |
|
|
|
|
date , message = find_indicate("https://www.bea.gov/data/personal-consumption-expenditures-price-index") |
|
|
|
|
while date.split(' ')[0] != target: |
|
|
|
|
message = read_PCE() |
|
|
|
|
broadcast_message(date+message, "-1002033782195") |
|
|
|
|
endtimee = time.time() |
|
|
|
|
broadcast_message( |
|
|
|
|
f"Now :{datetime.fromtimestamp(time.time())} , Spend time :{str(round(endtimee - startimee, 3))} s", |
|
|
|
|
"-1002033782195") |
|
|
|
|
if __name__ == "__main__": |
|
|
|
|
#PCE |
|
|
|
|
print("Start Time:" , datetime.fromtimestamp(time.time())) |
|
|
|
|
schedule.every().day.at("20:05").do(broadcast_all) |
|
|
|
|
schedule.every().day.at("21:20").do(broadcast_all_sele, "December") |
|
|
|
|
while True: |
|
|
|
|
if datetime.now().strftime("%Y-%m-%d %H:%M") == "2024-02-29 20:05": |
|
|
|
|
if datetime.now().strftime("%Y-%m-%d %H:%M") == "2024-02-29 21:20": |
|
|
|
|
schedule.run_pending() |
|
|
|
|
time.sleep(0.1) # Check every 0.1 seconds |
|
|
|
|
broadcast_all("December") |
|
|
|
|
time.sleep(0.1) # Check every 0.1 seconds |