coinbus-data/coinbus/Macroeconomic_FER.py

90 lines
3.6 KiB
Python
Raw Normal View History

2025-08-29 08:52:11 +00:00
import time
import requests
import pymysql
from bs4 import BeautifulSoup
from w3lib.html import remove_tags
import datetime
while True:
try:
# now_time = datetime.datetime.now()
# next_time = now_time + datetime.timedelta(days=+1)
# next_year = next_time.date().year
# next_month = next_time.date().month
# next_day = next_time.date().day
# next_time = datetime.datetime.strptime(str(next_year) + "-" + str(next_month) + "-" + str(next_day) + " 20:30:01","%Y-%m-%d %H:%M:%S")
# timer_start_time = (next_time - now_time).total_seconds()
page = requests.get("https://www.federalreserve.gov/data/intlsumm/current.htm")
page = page.text
page = BeautifulSoup(page, 'html.parser')
page1 = page.find_all('th', class_="colorrev")
page = page.find_all('td', class_="shadedata1")
value1=remove_tags(str(page[-1]))
value1 = value1.replace(",", "")
value1 = value1.replace(" ", "")
date1=remove_tags(str(page1[-1]))
date1 = date1.replace(" ", "")
date1 = date1.replace("/r", "")
date1 = date1.replace("/p", "")
date1= date1[-4:] + date1[0:3]
date1 = date1.replace("Jan", "/1/01")
date1 = date1.replace("Feb", "/2/01")
date1 = date1.replace("Mar", "/3/01")
date1 = date1.replace("Apr", "/4/01")
date1 = date1.replace("May", "/5/01")
date1 = date1.replace("Jun", "/6/01")
date1 = date1.replace("Jul", "/7/01")
date1 = date1.replace("Aug", "/8/01")
date1 = date1.replace("Sep", "/9/01")
date1 = date1.replace("Oct", "/10/01")
date1 = date1.replace("Nov", "/11/01")
date1 = date1.replace("Dec", "/12/01")
format1 = '%Y/%m/%d'
value2 = remove_tags(str(page[-2]))
value2 = value2.replace(",", "")
value2 = value2.replace(" ", "")
date2 = remove_tags(str(page1[-2]))
date2 = date2.replace(" ", "")
date2 = date2.replace("/r", "")
date2 = date2.replace("/p", "")
date2 = date2[-4:] + date2[0:3]
date2 = date2.replace("Jan", "/1/01")
date2 = date2.replace("Feb", "/2/01")
date2 = date2.replace("Mar", "/3/01")
date2 = date2.replace("Apr", "/4/01")
date2 = date2.replace("May", "/5/01")
date2 = date2.replace("Jun", "/6/01")
date2 = date2.replace("Jul", "/7/01")
date2 = date2.replace("Aug", "/8/01")
date2 = date2.replace("Sep", "/9/01")
date2 = date2.replace("Oct", "/10/01")
date2 = date2.replace("Nov", "/11/01")
date2 = date2.replace("Dec", "/12/01")
format2 = '%Y/%m/%d'
from datetime import datetime
date1 = datetime.strptime(date1, format1)
date2 = datetime.strptime(date2, format2)
db = pymysql.connect(host="127.0.0.1",user="root",password="2GS@bPYcgiMyL14A",database="Macroeconomics",port=4423)
cursor = db.cursor()
sql = "select date from FER order by date desc limit 1"
cursor.execute(sql)
db.commit()
ole_time = cursor.fetchall()
ole_time = ole_time[0][0]
date2= "'" + str(date2) + "'"
sql = "update FER set FER= %s where date=%s" % (value2, date2)
cursor.execute(sql)
db.commit()
if date1 != ole_time:
sql = "insert into FER(date,FER)values('%s','%s')" % (date1, value1 + '*')
cursor.execute(sql)
db.commit()
db.close()
# time.sleep(timer_start_time)
time.sleep(21600)
except:
time.sleep(30)
continue