python获取集思路当日可转债信息

# -*- coding:utf-8 -*-
import json
import requests
import csv
import re
from lxml import etree
import datetime
import pandas as pd

def get_dat():
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36",
    }

    newUrl ="https://www.jisilu.cn/data/cbnew/cb_list/?___jsl=LST___t=1584777951900"
    #最简单的爬虫请求.也可以加上headers字段,防止部分网址的反爬虫机制
    response = requests.get(newUrl)
    #当爬取的界面需要用户名密码登录时候,构建的请求需要包含auth字段
    data = response.content.decode("utf-8")
    dat = json.loads(data)

    # 所有数据
    lst_data = []
    for one in dat['rows']:
        # 每一条数据
        lst_dat = []
        # 转债id
        id = one["id"]
        dat_cell = one["cell"]

        # 转债名称
        name = dat_cell['bond_nm']
        #股票名称
        stock_nm = dat_cell['stock_nm']
        # 现价
        price = dat_cell['price']
        # 溢价率
        premium_rt = dat_cell['premium_rt']
        # 评级
        rating_cd = dat_cell['rating_cd']
        # 回售触发价
        put_convert_price = dat_cell['put_convert_price']
        # 强赎触发价
        force_redeem_price = dat_cell['force_redeem_price']
        # 剩余时间
        last_time = dat_cell['year_left']
        # 双低
        dblow = dat_cell['dblow']
        #剩余规模
        curr_iss_amt=dat_cell['curr_iss_amt']
        #成交额
        volume=dat_cell['volume']
        #换手率
        turnover_rt = dat_cell['turnover_rt']
        #到期收益
        ytm_rt_tax = dat_cell['ytm_rt_tax']
        #下修次数
        adj_cnt = dat_cell['adj_cnt']
        # 统计日期
        tjrq = datetime.date.today().__format__('%Y-%m-%d')



        lst_dat.append(id)
        lst_dat.append(name)
        lst_dat.append(stock_nm)
        lst_dat.append(price)
        lst_dat.append(premium_rt)
        lst_dat.append(rating_cd)
        lst_dat.append(put_convert_price)
        lst_dat.append(force_redeem_price)
        lst_dat.append(last_time)
        lst_dat.append(dblow)
        lst_dat.append(curr_iss_amt)
        lst_dat.append(volume)
        lst_dat.append(turnover_rt)
        lst_dat.append(ytm_rt_tax)
        lst_dat.append(adj_cnt)
        lst_dat.append(tjrq)

        lst_data.append(lst_dat)
    return lst_data

def wirte_csv(data):
    # 1. 创建文件对象
    tjrq2 = datetime.date.today().__format__('%Y-%m-%d')
    c_name ="可转债"+ tjrq2 + ".csv"
    f = open(c_name, 'w', encoding='gbk', newline='')
    # 2. 基于文件对象构建 csv写入对象
    csv_writer = csv.writer(f)
    # 3. 构建列表头
    csv_writer.writerow(["代 码", "转债名称","股票名称", "现 价", "溢价率", "评级",
                     "回售触发价", "强赎触发价", "剩余年限", "双低", "剩余规模","成交额","换手率","到期收益","下修次数","统计日期"])
    # 4. 写入csv文件内容
    for dat in data:
        csv_writer.writerow(dat)
    # 5. 关闭文件
    f.close()


if __name__ == '__main__':
    data = get_dat()
    wirte_csv(data)
    # df = pd.DataFrame(data)
    # print(df)

  

原文地址:https://www.cnblogs.com/hanjiangs/p/14243777.html