akshare 1.15.12__py3-none-any.whl → 1.15.13__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of akshare might be problematic. Click here for more details.

akshare/__init__.py CHANGED
@@ -2922,9 +2922,10 @@ amac_manager_cancelled_info # 中国证券投资基金业协会-信息公示-诚
2922
2922
  1.15.10 add: add volatility_yz_rv indicator
2923
2923
  1.15.11 fix: fix stock_individual_spot_xq indicator
2924
2924
  1.15.12 fix: fix stock_shareholder_change_ths indicator
2925
+ 1.15.13 fix: fix stock_inner_trade_xq indicator
2925
2926
  """
2926
2927
 
2927
- __version__ = "1.15.12"
2928
+ __version__ = "1.15.13"
2928
2929
  __author__ = "AKFamily"
2929
2930
 
2930
2931
  import sys
@@ -3206,6 +3207,7 @@ from akshare.stock_fundamental.stock_finance_ths import (
3206
3207
  stock_financial_debt_ths,
3207
3208
  stock_financial_benefit_ths,
3208
3209
  stock_financial_cash_ths,
3210
+ stock_management_change_ths,
3209
3211
  stock_shareholder_change_ths,
3210
3212
  )
3211
3213
 
@@ -1,10 +1,11 @@
1
1
  # -*- coding:utf-8 -*-
2
2
  # !/usr/bin/env python
3
3
  """
4
- Date: 2022/4/29 17:01
4
+ Date: 2024/11/5 16:00
5
5
  Desc: 雪球-行情中心-沪深股市-内部交易
6
6
  https://xueqiu.com/hq/insider
7
7
  """
8
+
8
9
  import pandas as pd
9
10
  import requests
10
11
 
@@ -18,10 +19,10 @@ def stock_inner_trade_xq() -> pd.DataFrame:
18
19
  """
19
20
  url = "https://xueqiu.com/service/v5/stock/f10/cn/skholderchg"
20
21
  params = {
21
- 'size': '100000',
22
- 'page': '1',
23
- 'extend': 'true',
24
- '_': '1651223013040',
22
+ "size": "100000",
23
+ "page": "1",
24
+ "extend": "true",
25
+ "_": "1651223013040",
25
26
  }
26
27
  headers = {
27
28
  "Accept": "*/*",
@@ -38,39 +39,46 @@ def stock_inner_trade_xq() -> pd.DataFrame:
38
39
  "Sec-Fetch-Dest": "empty",
39
40
  "Sec-Fetch-Mode": "cors",
40
41
  "Sec-Fetch-Site": "same-origin",
41
- "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36",
42
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
43
+ "Chrome/100.0.4896.127 Safari/537.36",
42
44
  "X-Requested-With": "XMLHttpRequest",
43
45
  }
44
46
  r = requests.get(url, params=params, headers=headers)
45
47
  data_json = r.json()
46
48
  temp_df = pd.DataFrame(data_json["data"]["items"])
47
49
  temp_df.columns = [
48
- '股票代码',
49
- '股票名称',
50
- '变动人',
51
- '-',
52
- '变动日期',
53
- '变动股数',
54
- '成交均价',
55
- '变动后持股数',
56
- '与董监高关系',
57
- '董监高职务',
50
+ "股票代码",
51
+ "股票名称",
52
+ "变动人",
53
+ "-",
54
+ "变动日期",
55
+ "变动股数",
56
+ "成交均价",
57
+ "变动后持股数",
58
+ "与董监高关系",
59
+ "董监高职务",
60
+ ]
61
+ temp_df = temp_df[
62
+ [
63
+ "股票代码",
64
+ "股票名称",
65
+ "变动日期",
66
+ "变动人",
67
+ "变动股数",
68
+ "成交均价",
69
+ "变动后持股数",
70
+ "与董监高关系",
71
+ "董监高职务",
72
+ ]
58
73
  ]
59
- temp_df = temp_df[[
60
- '股票代码',
61
- '股票名称',
62
- '变动日期',
63
- '变动人',
64
- '变动股数',
65
- '成交均价',
66
- '变动后持股数',
67
- '与董监高关系',
68
- '董监高职务',
69
- ]]
70
- temp_df['变动日期'] = pd.to_datetime(temp_df['变动日期'], unit="ms").dt.date
71
- temp_df['变动股数'] = pd.to_numeric(temp_df['变动股数'], errors="coerce")
72
- temp_df['成交均价'] = pd.to_numeric(temp_df['成交均价'], errors="coerce")
73
- temp_df['变动后持股数'] = pd.to_numeric(temp_df['变动后持股数'], errors="coerce")
74
+ temp_df["变动日期"] = (
75
+ pd.to_datetime(temp_df["变动日期"], unit="ms", utc=True)
76
+ .dt.tz_convert("Asia/Shanghai")
77
+ .dt.date
78
+ )
79
+ temp_df["变动股数"] = pd.to_numeric(temp_df["变动股数"], errors="coerce")
80
+ temp_df["成交均价"] = pd.to_numeric(temp_df["成交均价"], errors="coerce")
81
+ temp_df["变动后持股数"] = pd.to_numeric(temp_df["变动后持股数"], errors="coerce")
74
82
  return temp_df
75
83
 
76
84
 
@@ -11,6 +11,7 @@ import json
11
11
  import pandas as pd
12
12
  import requests
13
13
  from bs4 import BeautifulSoup
14
+
14
15
  from akshare.utils.cons import headers
15
16
 
16
17
 
@@ -163,13 +164,61 @@ def stock_financial_cash_ths(
163
164
  return temp_df
164
165
 
165
166
 
167
+ def stock_management_change_ths(symbol: str = "688981") -> pd.DataFrame:
168
+ """
169
+ 同花顺-公司大事-高管持股变动
170
+ https://basic.10jqka.com.cn/new/688981/event.html
171
+ :param symbol: 股票代码
172
+ :type symbol: str
173
+ :return: 同花顺-公司大事-高管持股变动
174
+ :rtype: pandas.DataFrame
175
+ """
176
+ url = f"https://basic.10jqka.com.cn/new/{symbol}/event.html"
177
+ r = requests.get(url, headers=headers)
178
+ r.encoding = "gb2312"
179
+ soup = BeautifulSoup(r.text, features="lxml")
180
+ soup_find = soup.find(name="table", attrs={"class": "data_table_1 m_table m_hl"})
181
+ if soup_find is not None:
182
+ content_list = [item.text.strip() for item in soup_find]
183
+ column_names = content_list[1].split("\n")
184
+ row = (
185
+ content_list[3]
186
+ .replace(" ", "")
187
+ .replace("\t", "")
188
+ .replace("\n\n", "")
189
+ .replace(" ", "\n")
190
+ .replace("\n\n", "\n")
191
+ .split("\n")
192
+ )
193
+ row = [item for item in row if item != ""]
194
+ new_rows = []
195
+ step = len(column_names)
196
+ for i in range(0, len(row), step):
197
+ new_rows.append(row[i : i + step])
198
+ temp_df = pd.DataFrame(new_rows, columns=column_names)
199
+ temp_df.sort_values(by="变动日期", ignore_index=True, inplace=True)
200
+ temp_df["变动日期"] = pd.to_datetime(
201
+ temp_df["变动日期"], errors="coerce"
202
+ ).dt.date
203
+ temp_df.rename(
204
+ columns={
205
+ "变动数量(股)": "变动数量",
206
+ "交易均价(元)": "交易均价",
207
+ "剩余股数(股)": "剩余股数",
208
+ },
209
+ inplace=True,
210
+ )
211
+ return temp_df
212
+ return pd.DataFrame()
213
+
214
+
166
215
  def stock_shareholder_change_ths(symbol: str = "688981") -> pd.DataFrame:
167
216
  """
168
217
  同花顺-公司大事-股东持股变动
169
218
  https://basic.10jqka.com.cn/new/688981/event.html
170
219
  :param symbol: 股票代码
171
220
  :type symbol: str
172
- :return: 同花顺-财务指标-主要指标
221
+ :return: 同花顺-公司大事-股东持股变动
173
222
  :rtype: pandas.DataFrame
174
223
  """
175
224
  url = f"https://basic.10jqka.com.cn/new/{symbol}/event.html"
@@ -267,5 +316,8 @@ if __name__ == "__main__":
267
316
  )
268
317
  print(stock_financial_cash_ths_df)
269
318
 
319
+ stock_management_change_ths_df = stock_management_change_ths(symbol="688981")
320
+ print(stock_management_change_ths_df)
321
+
270
322
  stock_shareholder_change_ths_df = stock_shareholder_change_ths(symbol="688981")
271
323
  print(stock_shareholder_change_ths_df)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: akshare
3
- Version: 1.15.12
3
+ Version: 1.15.13
4
4
  Summary: AKShare is an elegant and simple financial data interface library for Python, built for human beings!
5
5
  Home-page: https://github.com/akfamily/akshare
6
6
  Author: AKFamily
@@ -40,7 +40,10 @@ Requires-Dist: akqmt; extra == "qmt"
40
40
 
41
41
  **欢迎加入专注于财经数据和量化投资的知识社区,请点击[了解更多](https://akshare.akfamily.xyz/learn.html)**
42
42
 
43
- **相关视频教程已经发布:《AKShare-初阶-使用教学》、《AKShare-初阶-实战应用》、《AKShare-源码解析》、《开源项目巡礼》**,详情请访问[课程](https://app3rqjh1z21630.h5.xiaoeknow.com)查看更多课程信息!
43
+ **首门量化投资教程:《PyBroker-入门及实战》已经录制完成,目前已经上架!**
44
+
45
+ **更多视频教程已经发布:《AKShare-初阶-使用教学》、《AKShare-初阶-实战应用》、《AKShare-源码解析》、《开源项目巡礼》**,
46
+ 详情请关注【数据科学实战】公众号,查看更多课程信息!
44
47
 
45
48
  **AKQuant 量化教程请访问:[利用 PyBroker 进行量化投资](https://akquant.akfamily.xyz/)**
46
49
 
@@ -1,4 +1,4 @@
1
- akshare/__init__.py,sha256=AVoSUwfINg2hFwgDGt6K63wvHLg52G94W0ODgPWxG4Q,183191
1
+ akshare/__init__.py,sha256=FKX7WMccB5Id23VL4nmeqolblK3dC_INyGCwkOsSrwE,183272
2
2
  akshare/datasets.py,sha256=-qdwaQjgBlftX84uM74KJqCYJYkQ50PV416_neA4uls,995
3
3
  akshare/exceptions.py,sha256=WEJjIhSmJ_xXNW6grwV4nufE_cfmmyuhmueVGiN1VAg,878
4
4
  akshare/request.py,sha256=HtFFf9MhfEibR-ETWe-1Tts6ELU4VKSqA-ghaXjegQM,4252
@@ -323,7 +323,7 @@ akshare/stock_feature/stock_hsgt_em.py,sha256=1S18-GB9RvDP7tTvKR_W-BFSoKOPbpBTrb
323
323
  akshare/stock_feature/stock_hsgt_exchange_rate.py,sha256=YvhvdGx1nBJ_1swos1YNOtzy0GMFYo8MgNBh5QKphtE,6838
324
324
  akshare/stock_feature/stock_hsgt_min_em.py,sha256=KLeez7MQwBAcO-RT7n41LOikUfvXDGK0-G1n9av5mtY,2883
325
325
  akshare/stock_feature/stock_info.py,sha256=oLeWzDAEO0GCKGaNE-k1yUKn11qCkgENEmt-1nJq6-M,9912
326
- akshare/stock_feature/stock_inner_trade_xq.py,sha256=XM-Q_l6_KH0rKDDhgnhayv7siIliTVddLtnEJl9fRq4,2541
326
+ akshare/stock_feature/stock_inner_trade_xq.py,sha256=jsARS5It6_UNn3WL8vnTK4F90Rx1dMvarxtiVbzOLrM,2682
327
327
  akshare/stock_feature/stock_irm_cninfo.py,sha256=xD028gllzaHYj6xU9pRKvSLI_gIkVhCTnFH0dSPv1gY,6112
328
328
  akshare/stock_feature/stock_jgdy_em.py,sha256=jmXRvmIwk7IY3SKAGaxi5M7WM7V8yY51UOPg94YQR9Q,6003
329
329
  akshare/stock_feature/stock_lh_yybpm.py,sha256=7VlqA-UGbfiQ4ez7Ah9znIfUcVI-7Fxxz_V03JO8LTY,3614
@@ -357,7 +357,7 @@ akshare/stock_feature/ths.js,sha256=AWPkHf3L2Il1UUL0F5qDqNn1dfU0OlZBNUbMf8AmI3Y,
357
357
  akshare/stock_fundamental/__init__.py,sha256=jiXoO9OXiMxB0wHaPQkuxNckYuoFKtzuhZL1ytnE2nQ,82
358
358
  akshare/stock_fundamental/stock_finance.py,sha256=WuYvLo8xZxH-VS-6P-S31yzsKA1ojrwegcLXP2byle4,30676
359
359
  akshare/stock_fundamental/stock_finance_hk.py,sha256=Tn_vhGqxdnNDaY6Rd_M6rDvYOYpWMKGGiHudcJkShq8,6917
360
- akshare/stock_fundamental/stock_finance_ths.py,sha256=Ibo-1hVkJoDznJFnijEUuOF8a_QZ2dgxeHXTaoQ3uJg,9559
360
+ akshare/stock_fundamental/stock_finance_ths.py,sha256=4G2sTqZHJbhVBtBAQaWoUx41xekCHdw_fKHgPB07avg,11455
361
361
  akshare/stock_fundamental/stock_hold.py,sha256=h8V5v_0YOi3FJPc1w95WBaO0v3n87lcufcUlu-i6XXk,5394
362
362
  akshare/stock_fundamental/stock_ipo_declare.py,sha256=18j2542TT2nCJ1HWBcT6-HupRbXvesA30qqejknn-kM,1809
363
363
  akshare/stock_fundamental/stock_kcb_detail_sse.py,sha256=MBanq3sDvb0OTbUl_gg7avDUQg_3Ugzqr43cB43fp60,940
@@ -383,8 +383,8 @@ akshare/utils/token_process.py,sha256=K4rGXjh_tgugbRcyOK2h2x0jP3PT65IIK7nxhUKhOe
383
383
  akshare/utils/tqdm.py,sha256=MuPNwcswkOGjwWQOMWXi9ZvQ_RmW4obCWRj2i7HM7FE,847
384
384
  tests/__init__.py,sha256=gNzhlO0UPjFq6Ieb38kaVIODXv4cTDByrdohAZnDYt4,82
385
385
  tests/test_func.py,sha256=j1MGYbZI2if2j_LY1S4FLsf4qfq4NwVqD5wmRlv5Log,832
386
- akshare-1.15.12.dist-info/LICENSE,sha256=mmSZCPgfHiVw34LXuFArd-SUgQtBJ_QsIlh-kWlDHfs,1073
387
- akshare-1.15.12.dist-info/METADATA,sha256=D4LrV2g8mXG_Me8URess4pxUW7fBclQebphNhnLMZHE,14152
388
- akshare-1.15.12.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
389
- akshare-1.15.12.dist-info/top_level.txt,sha256=jsf9ZzZPmHaISTVumQPsAw7vv7Yv-PdEVW70SMEelQQ,14
390
- akshare-1.15.12.dist-info/RECORD,,
386
+ akshare-1.15.13.dist-info/LICENSE,sha256=mmSZCPgfHiVw34LXuFArd-SUgQtBJ_QsIlh-kWlDHfs,1073
387
+ akshare-1.15.13.dist-info/METADATA,sha256=-MOPXh9wvdFnbIDVUNBNOobh_VUCEUXn5dX0w4ZjlKA,14244
388
+ akshare-1.15.13.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
389
+ akshare-1.15.13.dist-info/top_level.txt,sha256=jsf9ZzZPmHaISTVumQPsAw7vv7Yv-PdEVW70SMEelQQ,14
390
+ akshare-1.15.13.dist-info/RECORD,,