| |
| |
| |
| |
| |
| |
| import os |
| from datetime import datetime, timedelta |
| import json, requests |
| import pandas as pd |
| from option_mssql import mssql_query |
| from share import SI |
| |
| def crawlFinanceCompanyExchangeRate(): |
| sql = ' SELECT top 1 rq FROM hl order by rq desc ' |
| oldDate = mssql_query(sql, 3)['rq'] |
| if len(oldDate) > 0: |
| beginDate = oldDate[0] + timedelta(days=1) |
| beginDate = datetime.strftime(beginDate, '%Y-%m-%d') |
| else: |
| beginDate = '20000101' |
| endDate = datetime.today() |
| endDate = datetime.strftime(endDate, '%Y-%m-%d').replace('-', '') |
| date_list = [datetime.strftime(x, '%Y-%m-%d') for x in list(pd.date_range(start=beginDate , end=endDate))] |
| if len(date_list)==0: |
| return None |
| os.environ['NO_PROXY'] = 'https://你的IP:端口' |
| url = 'https://你的IP:8081/getPriceByPage?pageNum=1&pageSize=100&startTime=&endTime=' |
| |
| |
| |
| |
| response = requests.get(url, verify=False) |
| if response.status_code != requests.codes.ok: |
| return None |
| header = ['rq','hl','oy','yb','gb'] |
| records = json.loads(response.text)['pageList'] |
| df = pd.DataFrame(records) |
| df = df[['price_date','shou_mei','shou_ou','shou_ying','shou_gang']] |
| df.columns = header |
| if len(date_list) > 1: |
| df = df[df['rq'].isin(date_list)] |
| elif len(date_list) == 1: |
| df = df[ df['rq'] == date_list[0]] |
| if len(date_list)==0 | df.shape[0] == 0 : |
| SI.alarmMessageBox(" 无需下载!") |
| return None |
| df.sort_values(by='rq', inplace=True) |
| df['bz'], df['state']= '', 0 |
| count = 0 |
| |
| |
| for row in range(df.shape[0]): |
| sql = ''' |
| insert into hl(rq, hl, oy, yb, gb, bz, state) values( |
| ''' |
| for col in range(df.shape[1]): |
| if col == 0: |
| sql = sql + '\'' + df.iloc[row, col].strip() + '\',' |
| elif not SI.isnumber(df.iloc[row, col]): |
| sql = sql + ' 0 ,' |
| else: |
| sql = sql + str(format(float(df.iloc[row, col]), '.4f')) + ',' |
| sql = sql[0:-1] + ')' |
| |
| count = count + mssql_query(sql, 8) |
| return count |
| if __name__ == '__main__': |
| if crawlFinanceCompanyExchangeRate(): |
| SI.alarmMessageBox(f" ****公司汇率售汇价 爬取完成! ") |
| else: |
| SI.alarmMessageBox(" 无需下载! ") |
| |
| |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了