|
import akshare as ak |
|
import pandas as pd |
|
import datetime |
|
from pymongo import MongoClient |
|
import time |
|
import pytz |
|
|
|
client = MongoClient("mongodb://wth000:[email protected]:27017/dbname?authSource=wth000") |
|
db = client["wth000"] |
|
names = [("000", "001", "002", "600", "601", "603", "605")] |
|
|
|
|
|
start_date = "20170101" |
|
|
|
|
|
|
|
codes = ak.stock_zh_a_spot_em() |
|
|
|
codes = codes[~codes["名称"].str.contains("ST")] |
|
|
|
codes = codes[~codes["名称"].str.contains("退")] |
|
for name in names: |
|
try: |
|
collection = db[f"股票除息除权{name}"] |
|
collection.drop() |
|
df = pd.DataFrame() |
|
df = codes[codes["代码"].str.startswith(name)][["代码", "名称"]].copy() |
|
|
|
for code in df["代码"]: |
|
try: |
|
time.sleep(60.0) |
|
|
|
k_data = ak.stock_history_dividend_detail(symbol=code, indicator="配股") |
|
k_data["代码"] = float(code) |
|
k_data = k_data[["代码","配股方案","配股价格","基准股本","股权登记日","除权日"]] |
|
|
|
k_data["配股方案"] = k_data["配股方案"].apply(lambda x: float(x)) |
|
k_data["配股价格"] = k_data["配股价格"].apply(lambda x: float(x)) |
|
k_data["基准股本"] = k_data["基准股本"].apply(lambda x: float(x)) |
|
k_data["股权登记日"] = k_data["股权登记日"].apply(lambda x: str(x)) |
|
k_data["除权日"] = k_data["除权日"].apply(lambda x: str(x)) |
|
print(k_data) |
|
collection.insert_many(k_data.to_dict("records")) |
|
print(code, "已完成") |
|
except Exception as e: |
|
print(code, "未除权除息", e) |
|
print("任务已经完成") |
|
except Exception as e: |
|
print(e) |
|
|