热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

2019-03-18使用RequestPOST获取CNABS网站上JSON格式的表格数据,并解析出来用pymssql写到SQLServer中

importrequestsimportpymssqlurlhttps:v1.cn-abs.comajaxChartMarketHandler.ashxheader
import requests
import pymssql

url = 'https://v1.cn-abs.com/ajax/ChartMarketHandler.ashx'
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36'
}


# 每个交易场所每一年的发行金额
def get_marketInventory():
    FromData = {
        'type': 'marketInventory'
    }
    rep = requests.post(url, data=FromData).json()
    for i in rep:
        # print(i['SeriesName'],i['Points'])
        for j in i['Points']:
            result = {
                '交易场所': i['SeriesName'],
                '发行年份': j['X'],
                '发行金额': j['Y']
            }
            yield result

# 各个资产类型每一年的发行金额
def get_marketTotal():
    FromData = {
        'type': 'marketTotal'
    }
    rep = requests.post(url, data=FromData).json()
    for i in rep:
        # print(i['SeriesName'],i['Points'])
        result = {
            '资产类型': i['SeriesName'],
            '发行金额': "" + str(i['Points'][0]['Y'][0]).replace("[", "'").replace("]", "'"),
            '存量金额': "" + str(i['Points'][1]['Y'][0]).replace("[", "'").replace("]", "'")
        }
        yield result

def sql_marketInventory():
    result = get_marketInventory()
    for res in result:
        MarketPlace = res['交易场所']
        IssueYear = res['发行年份']
        IssueAmount = res['发行金额']
        sqlText = "insert into [InvestSuite].[dbo].[MarketInventory] (MarketPlace,IssueYear,IssueAmount) " \
                  "values(N'%s','%s','%s')"%(MarketPlace,IssueYear,IssueAmount)
        cur.execute(sqlText)
    conn.commit()
    # 如果update/delete/insert记得要conn.commit()
    # cur.close()
    # conn.close()
    # sqlText = 'SELECT * FROM [InvestSuite].[dbo].[MarketInventory] '
    # cur.execute(sqlText)
    # print(cur.fetchall())

def sql_marketTotal():
    result = get_marketTotal()
    for res in result:
        AssetType=res['资产类型']
        CurrentIssueAmount=res['发行金额']
        TotalIssueAmount=res['存量金额']
        sqlText = "insert into [InvestSuite].[dbo].[MarketTotal] (AssetType,CurrentIssueAmount,TotalIssueAmount) " \
                  "values(N'%s','%s','%s')" % (AssetType,CurrentIssueAmount,TotalIssueAmount)
        cur.execute(sqlText)
    conn.commit()

# 清空两张表的所有数据
def clean():
    sql_text='delete from [InvestSuite].[dbo].[MarketTotal]'
    cur.execute(sql_text)
    conn.commit()

    sql_text = 'delete from [InvestSuite].[dbo].[MarketInventory]'
    cur.execute(sql_text)
    conn.commit()

if __name__ == '__main__':
    cOnn= pymssql.connect(host='', user='', password='',
                           database='', charset='utf8')
    cur = conn.cursor()
    if not cur:
        raise Exception('数据库连接失败!')
    # parse_marketInventory()
    # parse_marketTotal()
    clean()
    get_marketInventory()
    sql_marketInventory()
    get_marketTotal()
    sql_marketTotal()
    cur.close()
    conn.close()

  


推荐阅读
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • 使用正则表达式爬取36Kr网站首页新闻的操作步骤和代码示例
    本文介绍了使用正则表达式来爬取36Kr网站首页所有新闻的操作步骤和代码示例。通过访问网站、查找关键词、编写代码等步骤,可以获取到网站首页的新闻数据。代码示例使用Python编写,并使用正则表达式来提取所需的数据。详细的操作步骤和代码示例可以参考本文内容。 ... [详细]
  • 文章目录简介HTTP请求过程HTTP状态码含义HTTP头部信息Cookie状态管理HTTP请求方式简介HTTP协议(超文本传输协议)是用于从WWW服务 ... [详细]
  • 最近在学Python,看了不少资料、视频,对爬虫比较感兴趣,爬过了网页文字、图片、视频。文字就不说了直接从网页上去根据标签分离出来就好了。图片和视频则需要在获取到相应的链接之后取做下载。以下是图片和视 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • asp中如何嵌入python的简单介绍
    本文目录一览:1、如何在IIS中执行Python脚本 ... [详细]
  • Python爬取豆瓣数据实现过程解析
    这篇文章主要介绍了Python爬取豆瓣数据实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值, ... [详细]
  • Scrapy 爬取图片
    1.创建Scrapy项目scrapystartprojectCrawlMeiziTuscrapygenspiderMeiziTuSpiderhttps:movie.douban.c ... [详细]
  • 目录爬虫06scrapy框架1.scrapy概述安装2.基本使用3.全栈数据的爬取4.五大核心组件对象5.适当提升scrapy爬取数据的效率6.请求传参爬虫06scrapy框架1. ... [详细]
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 如何在HTML中获取鼠标的当前位置
    本文介绍了在HTML中获取鼠标当前位置的三种方法,分别是相对于屏幕的位置、相对于窗口的位置以及考虑了页面滚动因素的位置。通过这些方法可以准确获取鼠标的坐标信息。 ... [详细]
  • php将utf8转为gbk,php utf8怎么转gbk
    phputf8转gbk的方法:首先创建一个PHP示例文件;然后通过“iconv(UTF-8,gbkTRANSLIT,$str);”方法将字符串的 ... [详细]
  • css元素可拖动,如何使用CSS禁止元素拖拽?
    一、用户行为三剑客以下3个CSS属性:user-select属性可以设置是否允许用户选择页面中的图文内容;user-modify属性可以设置是否允许输入 ... [详细]
author-avatar
丁丁2244
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有