# -*- coding: utf-8 -*-
import requests
import re
import datetime
import mysql.connector
import time
def array_to_insert_params(arr, table_name):
header = arr[0]
values = arr[1:]
field_str = ', '.join(header)
value_str_list = []
for value in values:
value_str_list.append('(' + ', '.join([f"'{v}'" for v in value]) + ')')
value_str = ', '.join(value_str_list)
return f"INSERT INTO {table_name} ({field_str}) VALUES {value_str};"
def array_to_update_params(arr, table_name, primary_keys):
header = arr[0]
values = arr[1:]
update_str_list = []
for value in values:
value_dict = dict(zip(header, value))
primary_key_values = [value_dict.pop(key) for key in primary_keys]
update_str = ', '.join([f"{k} = '{v}'" for k, v in value_dict.items()])
where_str = ' AND '.join([f"{key} = '{value}'" for key, value in zip(primary_keys, primary_key_values)])
update_str_list.append(f"{update_str} WHERE {where_str}")
return f"UPDATE {table_name} SET {', '.join(update_str_list)};"
def array_gj_to_update_params(arr, table_name, primary_keys, primary_key_rels=None):
header = arr[0]
values = arr[1:]
update_str_list = []
for value in values:
value_dict = dict(zip(header, value))
primary_key_values = [value_dict.pop(key) for key in primary_keys]
if primary_key_rels is None:
primary_key_rels = ['='] * len(primary_keys)
where_str = ' AND '.join([f"{key} {rel} '{value}'" for key, rel, value in zip(primary_keys, primary_key_rels, primary_key_values)])
update_str = ', '.join([f"{k} = '{v}'" for k, v in value_dict.items()])
update_str_list.append(f"{update_str} WHERE {where_str}")
return f"UPDATE {table_name} SET {', '.join(update_str_list)};"
mydb = mysql.connector.connect(
host="103.215.83.22",
user="fadmin",
passwd="123",
database="admin"
)
mycursor = mydb.cursor()
#x = datetime.datetime.now()
#date=x.strftime("%Y-%m-%d")
def getgp(stock_code):
url = 'https://qt.gtimg.cn/q='+stock_code
headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'
}
response = requests.get(url, headers=headers)
content = response.text
contents=content.split(';')
for n in contents:
if(len(n)>10):
pattern = r'v_\w{2,}="(.+?)"'
resultOne = re.findall(pattern, n)
data = resultOne[0].split('~')
date=data[30]
date = date[:8]
if len(data) > 0:
mycursor.execute("SELECT * FROM fa_shares where name='"+data[1]+"'")
myresult = mycursor.fetchone()
if(myresult):
size=str(round((float(data[3]) - float(data[4])) / float(data[4]) * 100, 2))+'%'
arr = [['now_price','yes_price','now_time','size','nover_num','nover_price','nover_rate','TTM','market','ratio','pe_move','pr_quiet','update_time','name'],
[data[3],data[4],data[30],size, data[36], data[37],data[38],data[39],data[45],data[46],data[52],data[53],int(time.time()),data[1]]
]
res=array_to_update_params(arr,"fa_shares",["name"])
mycursor.execute(res)
mycursor.execute("SELECT * FROM fa_shares_detail where name='"+data[1]+"' and date='"+date+"'")
myresult2 = mycursor.fetchone()
arr = [['now_price','yes_price','now_time','size','nover_num','nover_price','nover_rate','TTM','market','ratio','pe_move','pr_quiet','update_time','name','date'],
[data[3],data[4],data[30],size, data[36], data[37],data[38],data[39],data[45],data[46],data[52],data[53],int(time.time()),data[1],date]
]
if(myresult2):
res=array_to_update_params(arr,"fa_shares_detail",["name"])
mycursor.execute(res)
else:
res=array_to_insert_params(arr,"fa_shares_detail")
mycursor.execute(res)
mycursor.execute("SELECT * FROM fa_shares")
code = mycursor.fetchall()
c=""
for n in code:
c=n[2]+','+c
print(c)
getgp(stock_code=c)
python获取股票数据
5星 · 超过95%的资源 需积分: 5 50 浏览量
2023-05-04
00:43:06
上传
评论 1
收藏 1KB RAR 举报
PHP隔壁老王邻居
- 粉丝: 1555
- 资源: 25
最新资源
- 农村信用社联合社计算机信息系统投产与变更管理办.docx
- 农村信用社联合社计算机信息系统数据管理办法.docx
- 利用SPSS作临床效度分析线上计算网站介绍-医学研究部统计谘.(医学PPT课件).ppt
- 利用Zabbix监控mysqldump定时备份数据库状态.docx
- 利用计算机解决问题的基本过程.doc
- 化工铁路通信工程总结.doc
- 北京大学网络教育软件工程作业.docx
- 医药公司(连锁店)计算机操作规程未新系统的自行按照旧制修改-新系统过制的编号加修模版.doc
- 医药公司(连锁店)计算机系统操作规程模版.doc
- 医药连锁门店计算机系统的操作和管理程序未新系统的自行按照旧制修改-新系统过制的编号加修模版.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
- 1
- 2
前往页