python3爬外汇交易中心数据存入数据库
外汇交易中心
代码:
#coding:utf-8import requests
import json
import pymysql
import timedef dataDeal(content):# 打开数据库连接db = pymysql.connect(host = 'localhost',user = 'root',passwd ='123456',db = 'cfets',charset='utf8' )# 使用 cursor() 方法创建一个游标对象 cursorcursor = db.cursor()try:cursor.execute(content)print(cursor.fetchall())db.commit()db.close()except:db.close()# 使用 execute() 方法执行 SQL 查询# cursor.execute("SELECT VERSION()")# cmd_list = []## cmd_list.append('show tables;')# cmd_list.append('select * from IssueCode;')
# cmd_list.append('select * from stock;')
# cmd_list.append('insert into hunpo(title,url) values("adfsf","qml");')
# cmd_list.append('insert into hunpo(title,url) values("qml","fbl");')#
# for cmd in cmd_list:
# cursor.execute(cmd)
# data = cursor.fetchone()
# print(data)
#提交数据
# db.commit()
# 关闭数据库连接
# db.close()class Shibor3M(object):def __init__(self,url,headers,cookies):self.url = urlself.headers = headersself.cookies = cookiesdef getJson(self):sourcejson = requests.post(url = self.url,headers = self.headers,cookies = self.cookies)if sourcejson.status_code != 200:returnsourcejson = sourcejson.content# sourcejson = sourcejson.decode("utf-8")jsonSource = json.loads(sourcejson)for k,v in jsonSource.items():# print(k,type(v),v)passjsonDict = {}jsonDict["curveType"] = jsonSource["data"]["curveType"]jsonDict["curveTypeEn"] = jsonSource["data"]["curveTypeEn"]jsonDict["cfgItemType"] = jsonSource["data"]["cfgItemType"] #curveIdjsonDict["curveId"] = jsonSource["data"]["curveId"] #curveIdtry:jsonDict["options"] = jsonSource["data"]["options"] [jsonDict["curveId"]] or ""#curveIdexcept:jsonDict["options"] = ""jsonDict["quoteTime"] = jsonSource["data"]["quoteTime"]jsonDict["showDateCN"] = jsonSource["data"]["showDateCN"]jsonDict["showDateEN"] = jsonSource["data"]["showDateEN"]jsonDict["provider"] = jsonSource["head"]["provider"]jsonDict["ts"] = jsonSource["head"]["ts"]jsonDict["tstext"] = jsonSource["head"]["tstext"]try:jsonDict["records"] = jsonSource["records"]except:jsonDict["records"] = ""jsonDict["issueCode"] = {}if jsonDict["records"] != "":for index,line in enumerate(jsonDict["records"]):jsonDict["issueCode"][jsonDict["curveTypeEn"] + "_" + line["tl"]] = [line["tl"],line["optimalAvg"],line["optimalAsk"],line["optimalBid"],line["curveid"]]for k,v in jsonDict["issueCode"].items():# print(k,jsonDict["showDateCN"],jsonDict["quoteTime"],jsonDict["curveTypeEn"],jsonDict["cfgItemType"],jsonDict["curveId"],jsonDict["options"],jsonDict["provider"],jsonDict["tstext"],v,)str = "insert into IRS_CFETS(IssueCode,showDateCN,quoteTime,curveTypeEn,cfgItemType,curveId,options,provider,tstext,tl,optimalAvg,optimalAsk,optimalBid) value('{IssueCode}','{showDateCN}','{quoteTime}','{curveTypeEn}','{cfgItemType}','{curveId}','{options}','{provider}','{tstext}','{tl}','{optimalAvg}','{optimalAsk}','{optimalBid}');"\.format(IssueCode = k,showDateCN = jsonDict["showDateCN"],quoteTime = jsonDict["quoteTime"],curveTypeEn = jsonDict["curveTypeEn"],cfgItemType = jsonDict["cfgItemType"],curveId = jsonDict["curveId"],options = jsonDict["options"],provider = jsonDict["provider"],tstext = jsonDict["tstext"],tl = v[0] ,optimalAvg = v[1],optimalAsk = v[2],optimalBid = v[3])print(str)dataDeal(str)# for line in jsonSource["records"]:# Timer = line["tl"]# jsonDict[Timer] =return jsonDictif __name__ == "__main__":url = "http://www.chinamoney.com.cn/chinese/bkcurvfx/" #总网站url = "http://www.chinamoney.com.cn/ags/ms/cm-u-bk-shibor/Ifcc?lang=CN&curveId=15&cfgItemType=71"for i in range(71,82,1):for k in [15,16,17]:print(i,k)url = "http://www.chinamoney.com.cn/ags/ms/cm-u-bk-shibor/Ifcc?lang=CN&curveId=" + str(k) + "&cfgItemType=" + str(i)cookies = {"_ulta_id.CM-Prod.e9dc":"a9368f3ef87b02ca"}headers = {"Accept":"application/json,text/javascript,*/*;q=0.01","Accept-Encoding":"gzip,deflate","Accept-Language":"zh-CN,zh;q=0.9","User-Agent":"Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36"}shibor3M = Shibor3M(url,headers,cookies)jsonRet = shibor3M.getJson()# print(jsonRet)# content = "insert into {curveType}(curveType,Provider,TimeStampData,TimeData) value('{curveType}','{Provider}','{TimeStampData}','{TimeData}');".format(curveType = jsonRet["curveType"],Provider = jsonRet["Provider"],TimeStampData = jsonRet["TimeStampData"],TimeData = jsonRet["TimeData"])# print(content)# dataDeal(content)# dataDeal("select * from shibor3m")
这里的数据都落库到数据库中,便于研究数据
python3爬外汇交易中心数据存入数据库相关推荐
- python爬取微博数据存入数据库_Python爬取微博数据并存入mysql,excel中
寒假期间做微博数据统计,由于是部门要求,也没办法,自己又是一个懒人,直接用python实现吧.写的很粗糙,也很差,请大家别介意. 总的来说分成两个模块:一个爬取微博数据存入数据库,一个从数据库调取数据 ...
- python爬取微博数据存入数据库_Python爬取新浪微博评论数据,写入csv文件中
因为新浪微博网页版爬虫比较困难,故采取用手机网页端爬取的方式 操作步骤如下: 1. 网页版登陆新浪微博 2.打开m.weibo.cn 3.查找自己感兴趣的话题,获取对应的数据接口链接 4.获取cook ...
- 爬虫学习——爬取台风数据存入数据库
最近因为某些需求需要台风数据的数据库,因此想利用python写一个相关的程序~ 因为台风的数据77年之前是没有风圈等数据,所以台风在77年前只有一张数据表,在77年之后多了一张关于风圈风力的表.但是我 ...
- python抓取数据库_Python-7.爬取大量数据存入数据库
本章包含内容: 前言 mongodb环境配置 爬取数据的代码分析 一.前言 在更新完上一篇python文章时,就一直想爬取一个10万量级的数据.在解了mongodb的基本用法和环境配置后,第一次测试的 ...
- python爬取微博数据存入数据库_python爬取微博并且存入数据库
由于平时喜欢刷微博,追星,所以写了想要写一个爬取微博的爬虫,在老师的建议下选择从移动端爬取,因为移动端页面元素简洁,易于爬取.在看微博时发现有比移动端更加简单的一个版本....老年机版?就是分页式的. ...
- 如何将爬取的数据存入数据库中
爬取链接:我爱我家 如果需要参考创建步骤,可以参考这篇文章 爬虫文件:loupan.py import scrapy from baiduSpider.items import Baiduspider ...
- 把爬取信息导出到mysql,关于爬虫学习的一些小小记录(四)——爬取数据存入数据库...
关于爬虫学习的一些小小记录(四)--爬取数据存入数据库 创建数据库 pymysql 模块 具体操作 预知后事如何 前面我们已经讲了怎么访问网页,并且从网页源码中提取数据.既然数据有了,怎样管理就是下一 ...
- python爬取新闻存入数据库_python爬取数据存入数据库
昨天本来写了一篇关于python爬取的文章,结果没通过,正好今天一起吧.用python同时实现爬取,和存入数据库,算是复习一下前面操作数据库的知识. 1.准备工作 既然是爬取,那自然要连接到爬取的页面 ...
- python爬取InterfaceLIFT壁纸,下载到本地,数据存入数据库(mysql,mongodb)
github地址 欢迎star,欢迎拍砖 适用pythopn版本 Python 2.7 or Python 3.6 只在这两个版本之下测试过,正常运行 项目文件说明 main.py 主要文件 mysq ...
最新文章
- 定时器 Quartz
- 第三周课程总结及实验报告(一)
- Win 系统 PyTorch 安装配置教程
- 关于vue.js element ui 表单验证 this.$refs[formName].validate()的问题
- 《Migrating to Cloud-Native Application Architectures》学习笔记之Chapter 2. Changes Needed
- 记一次引入Elasticsearch的系统架构实战
- ffmpeg命令 抓屏_使用FFmpeg从视频中截图的命令 | 学步园
- clickhouse建库_专访ClickHouse创始人:数据库竞争依旧火热,技术整合势在必行
- 让secureCRT正确显示中文
- 基于MonteCarlo法的经典射击问题中的杀伤概率估计问题
- python not in range1002无标题_新手常见Python运行时错误
- 大白话5分钟带你走进人工智能-第二节概率基础及高斯分布
- 自定义分区partitioner实现数据分区存储
- 如何打开.jar文件?
- Android版简历(三)
- matlab截取rect,MATLAB 标注 图像上截取Rect区域图像
- 计算机操作系统学习笔记
- js 万年历农历转阳历 方法_JS实现带阴历的日历功能详解
- UWP 手绘视频创作工具技术分享系列 - 文字的解析和绘制
- 国外著名大学计算机教学考察随笔