这次的任务是对国际现货与期货石油价格、美元人民币汇率、美元指数等数据的实时监控,采样频率为一小时一次。
因为我对国际现货与期货石油价格不是很清楚,这次就只是对美元人民币汇率、美元指数进行了操作。
1.在http://finance.sina.com.cn/money/forex/hq/DINIW.shtml?qq-pf-to=pcqq.c2c上提取数据可得
便可使用相应正则表达式提取所需rate = re.compile('var hq_str_USDCNY=".*?,(.*?),.*?";')
dollar = re.compile('".*?,(.*?),.*?";')
2.将得到的数据存入数据库即可
#__author__ = 'lenove'
#coding:utf-8
import urllib
import urllib2
import requests
import re
import MySQLdb
import time
url1 = 'http://hq.sinajs.cn/?rn=1417610216083&list=USDCNY'
url2 = 'http://hq.sinajs.cn/?rn=1417610565584&list=DINIW'
html1 = requests.get(url1)
html2 = requests.get(url2)
rate = re.compile('var hq_str_USDCNY=".*?,(.*?),.*?";').findall(html1.text)
dollar = re.compile('".*?,(.*?),.*?";').findall(html2.text)
value = []
value.append(rate[0].encode('utf-8'))
value.append(dollar[0].encode('utf-8'))
try:
cxn = MySQLdb.connect(host='localhost', user='root', passwd='wszgr728',db='test')
except:
print "Could not connect to MySQL server."
exit(0)
cur = cxn.cursor()
cur.execute("CREATE TABLE RESULT(rate VARCHAR(8),dollar VARCHAR(8))")
while 1:
cur = cxn.cursor()
cur.execute("INSERT INTO result values(%s,%s)",value)
cxn.commit()
print 'writing...'
time.sleep(3600)
cxn.close()
运行一次得到结果