akshare 1.15.10__py3-none-any.whl → 1.15.12__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
@@ -2920,9 +2920,11 @@ amac_manager_cancelled_info # 中国证券投资基金业协会-信息公示-诚
2920
2920
  1.15.8 fix: fix fund_individual_basic_info_xq interface
2921
2921
  1.15.9 fix: fix index_analysis_weekly_sw interface
2922
2922
  1.15.10 add: add volatility_yz_rv indicator
2923
+ 1.15.11 fix: fix stock_individual_spot_xq indicator
2924
+ 1.15.12 fix: fix stock_shareholder_change_ths indicator
2923
2925
  """
2924
2926
 
2925
- __version__ = "1.15.10"
2927
+ __version__ = "1.15.12"
2926
2928
  __author__ = "AKFamily"
2927
2929
 
2928
2930
  import sys
@@ -3204,6 +3206,7 @@ from akshare.stock_fundamental.stock_finance_ths import (
3204
3206
  stock_financial_debt_ths,
3205
3207
  stock_financial_benefit_ths,
3206
3208
  stock_financial_cash_ths,
3209
+ stock_shareholder_change_ths,
3207
3210
  )
3208
3211
 
3209
3212
  """
akshare/stock/stock_xq.py CHANGED
@@ -44,7 +44,7 @@ def stock_individual_spot_xq(
44
44
  """
45
45
  session = requests.Session()
46
46
  headers = {
47
- "cookie": "xq_a_token=f84a0b79c9e449cb1003cb36412faa34001a6697;",
47
+ "cookie": "xq_a_token=7716f523735d1e47a3dd5ec748923068ab8198a8;",
48
48
  "User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 16_6 like Mac OS X) AppleWebKit/605.1.15 "
49
49
  "(KHTML, like Gecko) Version/16.6 Mobile/15E148 Safari/604.1",
50
50
  }
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding:utf-8 -*-
3
3
  """
4
- Date: 2024/10/11 17:20
4
+ Date: 2024/11/2 15:20
5
5
  Desc: 同花顺-财务指标-主要指标
6
6
  https://basic.10jqka.com.cn/new/000063/finance.html
7
7
  """
@@ -11,6 +11,7 @@ import json
11
11
  import pandas as pd
12
12
  import requests
13
13
  from bs4 import BeautifulSoup
14
+ from akshare.utils.cons import headers
14
15
 
15
16
 
16
17
  def stock_financial_abstract_ths(
@@ -27,11 +28,6 @@ def stock_financial_abstract_ths(
27
28
  :rtype: pandas.DataFrame
28
29
  """
29
30
  url = f"https://basic.10jqka.com.cn/new/{symbol}/finance.html"
30
- headers = {
31
- "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) "
32
- "AppleWebKit/537.36 (KHTML, like Gecko) "
33
- "Chrome/89.0.4389.90 Safari/537.36",
34
- }
35
31
  r = requests.get(url, headers=headers)
36
32
  soup = BeautifulSoup(r.text, features="lxml")
37
33
  data_text = soup.find(name="p", attrs={"id": "main"}).string
@@ -72,11 +68,6 @@ def stock_financial_debt_ths(
72
68
  :rtype: pandas.DataFrame
73
69
  """
74
70
  url = f"https://basic.10jqka.com.cn/api/stock/finance/{symbol}_debt.json"
75
- headers = {
76
- "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) "
77
- "AppleWebKit/537.36 (KHTML, like Gecko) "
78
- "Chrome/89.0.4389.90 Safari/537.36",
79
- }
80
71
  r = requests.get(url, headers=headers)
81
72
  data_json = json.loads(json.loads(r.text)["flashData"])
82
73
  df_index = [
@@ -111,11 +102,6 @@ def stock_financial_benefit_ths(
111
102
  :rtype: pandas.DataFrame
112
103
  """
113
104
  url = f"https://basic.10jqka.com.cn/api/stock/finance/{symbol}_benefit.json"
114
- headers = {
115
- "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) "
116
- "AppleWebKit/537.36 (KHTML, like Gecko) "
117
- "Chrome/89.0.4389.90 Safari/537.36",
118
- }
119
105
  r = requests.get(url, headers=headers)
120
106
  data_json = json.loads(json.loads(r.text)["flashData"])
121
107
  df_index = [
@@ -154,11 +140,6 @@ def stock_financial_cash_ths(
154
140
  :rtype: pandas.DataFrame
155
141
  """
156
142
  url = f"https://basic.10jqka.com.cn/api/stock/finance/{symbol}_cash.json"
157
- headers = {
158
- "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) "
159
- "AppleWebKit/537.36 (KHTML, like Gecko) "
160
- "Chrome/89.0.4389.90 Safari/537.36",
161
- }
162
143
  r = requests.get(url, headers=headers)
163
144
  data_json = json.loads(json.loads(r.text)["flashData"])
164
145
  df_index = [
@@ -182,6 +163,54 @@ def stock_financial_cash_ths(
182
163
  return temp_df
183
164
 
184
165
 
166
+ def stock_shareholder_change_ths(symbol: str = "688981") -> pd.DataFrame:
167
+ """
168
+ 同花顺-公司大事-股东持股变动
169
+ https://basic.10jqka.com.cn/new/688981/event.html
170
+ :param symbol: 股票代码
171
+ :type symbol: str
172
+ :return: 同花顺-财务指标-主要指标
173
+ :rtype: pandas.DataFrame
174
+ """
175
+ url = f"https://basic.10jqka.com.cn/new/{symbol}/event.html"
176
+ r = requests.get(url, headers=headers)
177
+ r.encoding = "gb2312"
178
+ soup = BeautifulSoup(r.text, features="lxml")
179
+ soup_find = soup.find(name="table", attrs={"class": "m_table data_table_1 m_hl"})
180
+ if soup_find is not None:
181
+ content_list = [item.text.strip() for item in soup_find]
182
+ column_names = content_list[1].split("\n")
183
+ row = (
184
+ content_list[3]
185
+ .replace("\t", "")
186
+ .replace("\n\n", "")
187
+ .replace(" ", "\n")
188
+ .replace(" ", "")
189
+ .replace("\n\n", "\n")
190
+ .split("\n")
191
+ )
192
+ row = [item for item in row if item != ""]
193
+ new_rows = []
194
+ step = len(column_names)
195
+ for i in range(0, len(row), step):
196
+ new_rows.append(row[i : i + step])
197
+ temp_df = pd.DataFrame(new_rows, columns=column_names)
198
+ temp_df.sort_values(by="公告日期", ignore_index=True, inplace=True)
199
+ temp_df["公告日期"] = pd.to_datetime(
200
+ temp_df["公告日期"], errors="coerce"
201
+ ).dt.date
202
+ temp_df.rename(
203
+ columns={
204
+ "变动数量(股)": "变动数量",
205
+ "交易均价(元)": "交易均价",
206
+ "剩余股份总数(股)": "剩余股份总数",
207
+ },
208
+ inplace=True,
209
+ )
210
+ return temp_df
211
+ return pd.DataFrame()
212
+
213
+
185
214
  if __name__ == "__main__":
186
215
  stock_financial_abstract_ths_df = stock_financial_abstract_ths(
187
216
  symbol="000063", indicator="按报告期"
@@ -237,3 +266,6 @@ if __name__ == "__main__":
237
266
  symbol="000063", indicator="按单季度"
238
267
  )
239
268
  print(stock_financial_cash_ths_df)
269
+
270
+ stock_shareholder_change_ths_df = stock_shareholder_change_ths(symbol="688981")
271
+ print(stock_shareholder_change_ths_df)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: akshare
3
- Version: 1.15.10
3
+ Version: 1.15.12
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
@@ -1,4 +1,4 @@
1
- akshare/__init__.py,sha256=rAi5HeRNqAMHlNWS4JKfQBEgsAct8UTiy-fymCe4q6U,183049
1
+ akshare/__init__.py,sha256=AVoSUwfINg2hFwgDGt6K63wvHLg52G94W0ODgPWxG4Q,183191
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
@@ -278,7 +278,7 @@ akshare/stock/stock_us_js.py,sha256=wwZpRvVHqjxwd0cb2O5vtRW8Zw90Kdl5O4XNwoevN64,
278
278
  akshare/stock/stock_us_pink.py,sha256=jgkEjPm_qa4zSN1MH0unHJopSkcF-8Rqlp5Kus2KaQ8,3062
279
279
  akshare/stock/stock_us_sina.py,sha256=3bD41Y5GqDTv52bx5jbjrt0psaHZS10UL_e7E2B6wW8,8146
280
280
  akshare/stock/stock_weibo_nlp.py,sha256=eM7ofsNSrKiYeS0g38Qj9CxT6dkJZrn_pmziIiTqp4U,3286
281
- akshare/stock/stock_xq.py,sha256=UqCW2PIjXIbA4zlRoffgdJJ5S61CK3W7YaGCLSAglLg,4619
281
+ akshare/stock/stock_xq.py,sha256=QB6kZeoAY-O64-Lfu51a0tuROoTt3hIQO5K-yNhoXyM,4619
282
282
  akshare/stock/stock_zh_a_sina.py,sha256=gryRmUwqF9PyNl-fPhD72y5nfNmLVEnvzjZDhAe-cpg,18862
283
283
  akshare/stock/stock_zh_a_special.py,sha256=RRXkeZtRWm_maIPWgxvhBdX6eNybECjhSuEesZHRFJI,10294
284
284
  akshare/stock/stock_zh_a_tick_tx.py,sha256=TJUAWLKAeoLEaVVJQlj0t-1smZGoAO0X0rPsUPVhZZ4,2131
@@ -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=E_osHcEkgqc0MbYCryz-74IV3gNxAn38ff39gGvRmVQ,8370
360
+ akshare/stock_fundamental/stock_finance_ths.py,sha256=Ibo-1hVkJoDznJFnijEUuOF8a_QZ2dgxeHXTaoQ3uJg,9559
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.10.dist-info/LICENSE,sha256=mmSZCPgfHiVw34LXuFArd-SUgQtBJ_QsIlh-kWlDHfs,1073
387
- akshare-1.15.10.dist-info/METADATA,sha256=-D0v5_oUh59S9CYLr8sKeLpkjHjOlO3GRSW2Kz5TZPY,14152
388
- akshare-1.15.10.dist-info/WHEEL,sha256=P9jw-gEje8ByB7_hXoICnHtVCrEwMQh-630tKvQWehc,91
389
- akshare-1.15.10.dist-info/top_level.txt,sha256=jsf9ZzZPmHaISTVumQPsAw7vv7Yv-PdEVW70SMEelQQ,14
390
- akshare-1.15.10.dist-info/RECORD,,
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,,