python定时获取汇率存入数据库

python定时任务:
我们可以使用 轻量级的第三方模块schedule。首先先安装:pip install schedule

定时任务的的小测试:

import schedule
import time
 
def job():
    print("I'm working...")
 
schedule.every(10).minutes.do(job)              # 每隔10分钟执行一次任务
schedule.every().hour.do(job)                   # 每隔一小时执行一次任务
schedule.every().day.at("10:30").do(job)        # 每天10:30执行一次任务
schedule.every(5).to(10).days.do(job)           # 每5-10天执行一次任务
schedule.every().monday.do(job)                 # 每周一的这个时候执行一次任务
schedule.every().wednesday.at("13:15").do(job)  # 每周三13:15执行一次任务
 
while True:
    schedule.run_pending()

获取数据存入数据库:(格式可能不太对,还有一些符号。自己修改一下即可)

import pymysql
import schedule
import time
import requests
import pandas
from sqlalchemy import create_engine

#获取美元的所有外汇
def job():
    content = '美元'
    url = 'http://www.boc.cn/sourcedb/whpj/index.html'  #外汇数据地址
    html = requests.get(url).content.decode('utf-8')

    index = html.index('' + content + '')
    str = html[index:index+300]
    result = re.findall('(.*?)',str)

    print("币种:" + result[0])
    print("现汇买入价:" + result[1])
    print("现钞买入价:" + result[2])
    print("现汇卖出价:" + result[3])
    print("现钞卖出价:" + result[4])
    print("中行结算价:" + result[5])
    print("发布时间:" + result[6] + ' ' + result[7])
    
	#本地地址  数据库账号  密码   数据库名
    db = pymysql.connect('localhost','root','root','pinyougoudb')
    cursor = db.cursor()
    
	#sql语句
    sql = "update tb_money set huiBuy = %s,chaoBuy = %s,huiSale = %s,chaoSale  = %s,centerResult= %s,publishTime = '%s' where typeId = '%s'" % (result[1], result[2], result[3], result[4], result[5], result[6] + ' ' + result[7], result[0])

    cursor.execute(sql)
    db.commit()
    print('success')

	# 查询语句,将存入的数据查出来
    # sqlalchemy 进行数据库初始化
    engine = create_engine('mysql+pymysql://root:root@localhost:3306/pinyougoudb')
    sql = '''select * from tb_money'''

    # pandas 进行数据库读写
    df = pandas.read_sql_query(sql,engine)
    print(df)

    db.commit()


# 每隔几分中刷新一次
#schedule.every(0.1).minutes.do(job)

#每天什么时候刷新
schedule.every().day.at("09:29").do(job)
schedule.every().day.at("09:30").do(job)

#一直循环  知道满足条件执行
while True:
    schedule.run_pending()

你可能感兴趣的:(python定时获取汇率存入数据库)