说明:python实现读取股票数据保存到数据库数据库。
具体步骤:
1.安装大蟒模块
点安装请求
点安装美丽的声音
2.建表
//配置表
创建表gpconfig
(
编码主键标识(1,1),
gpname nvarchar(200),
gpid nvarchar(10),
gpurl nvarchar(2000年年),
添加时间日期时间默认值(getdate())
)
//本事例是从163网站读取,以下是配置表例子
插入到gpconfig(gpname,gpid,gpurl)
'选择'平安银行,' 000001 ',' http://引号。钱。163 .com/trade/lsjysj _ 000001。' html '
//数据采集表
创建gpprice表
(
编码主键标识(1,1),
gpname nvarchar(200),
gpid nvarchar(10),
gpdate日期时间,
gpkpprice decimal(20,4),
gpmaxprice decimal(20,4),
gpminprice decimal(20,4),
gpspprice decimal(20,4),
uplow decimal(20,4),
uplowpercent nvarchar(20),
dealcount bigint,
dealmoney decimal(20,4),
真富百分之nvarchar(20岁),
hspercent nvarchar(20岁),
添加时间日期时间默认值(getdate())
)
3.python语句
#编码UTF 8区:号
导入请求
导入安全套接层
从请求. auth导入HTTPBasicAuth
进口是
导入系统
从美丽的汤进口美丽的汤
导入pymssql
s_host='172.1.1.1 '
s_user='测试'
s_password='123456 '
s_database='gp '
mssqldb()类:
def __init__(self):
self.conn=self.getConnection()
def getConnection(self):
#打印self.host,self.username,self.userpwd,self.db
conn='a '
尝试:
conn=pymssql.connect(
主机=s _主机,
user=s_user,
password=s_password,
数据库=s _数据库)
例外情况除外,e:
"打印"连接数据库失败,%s' % e
#错误()。Errinsert(s_host,' conn ',' conn 1.79,1433 error ',' get day perflogs ')
返回连接器
定义查询(self,sqlstring):
cursor=self.conn.cursor()
尝试:
cursor.execute(sqlstring)
returnData=cursor.fetchall()
例外情况除外,e:
打印" sql错误"
#错误()。Errinsert('192.168.1.79 ',' select ','获取1.79天性能日志失败','获取天性能日志)
cursor.close()
self.conn.close()
返回返回数据
定义插入(self,insertstring,tup):
cursor=self.conn.cursor()
#打印" a "
尝试:
cursor.execute(insertstring,tup)
例外情况除外,e:
打印SSSS % s“% e”
#cursor.close()
self.conn.commit()
perlists=mssqldb().查询(' select gpname,gpid,gpurl from dbo.gpconfig,其中gp status=1’)
对于perlists:中的perlist
gpname=perlist[0]
gpid=perlist[1]
gpurl=perlist[2]
response=requests.get(gpurl)
response.encoding='utf-8 '
html=response.text
bs_xml=BeautifulSoup(html)
div=bs_xml.findAll('table ',{ ' class ' : ' table _ BG 001 border _ box limit _ sale ' })
trs=div[0]
tr_arr=trs.findAll('tr ')
对于tr_arr:中的tr
tds=tr.findAll('td ')
模式=re.compile(r'[^]',re。s)
td=pattern.sub(',str(tds))
td=td.replace(',','')
td=td.replace(',',')
#打印任务描述
tdall=td.replace('[',' ').替换(']','')
#tdallss=td.replace(' ','')
#打印gpname,tdall
#用于tdall:中的悬浮物
如果tdall!='':
u1,u2,u3,u4,u5,u6,u7,u8,u9,u10,u11=tdall.split(',',-1)
#打印u1,u2,u3,u4,u5,u6,u7,u8,u9,u10,u11
tup=(gpname,gpid,u1,u2,u3,u4,u5,u6,u7,u8,u9,u10,u11)
insert string=' insert into gpprice(gpname,gpid,gpdate,gpkpprice,gpmaxprice,gpminprice,gpspprice,uplow,uplowpercent,dealcount,dealmoney,zhenfupercent,hspercent)值(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,% s,% s,% s)
uexist=mssqldb().查询('从dbo.gpprice中选择gpid其中gpid='%s '且gpdate='%s''%(gpid,u1))
#打印类型(现有)
如果不存在:
perlists=mssqldb().插入(插入字符串,图)
#td=tr.findAll('td ')