Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/zsrl/pywencai
获取同花顺问财数据
https://github.com/zsrl/pywencai
Last synced: 14 days ago
JSON representation
获取同花顺问财数据
- Host: GitHub
- URL: https://github.com/zsrl/pywencai
- Owner: zsrl
- License: mit
- Created: 2022-09-17T07:15:06.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-08-01T08:37:35.000Z (3 months ago)
- Last Synced: 2024-08-01T18:32:06.958Z (3 months ago)
- Language: JavaScript
- Size: 2.19 MB
- Stars: 341
- Watchers: 8
- Forks: 125
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![PyPI version](https://badge.fury.io/py/pywencai.svg)](https://badge.fury.io/py/pywencai)
[![Downloads](https://static.pepy.tech/badge/pywencai/month)](https://pepy.tech/project/pywencai)![知识星球](./zsxq.png)
# pywencai
获取同花顺问财数据
## 环境依赖
由于程序中执行了js代码,请先保证已安装了[Node.js](https://nodejs.org/en/),需要版本**v16+**
未安装请自行安装
## 安装
```
pip install pywencai
```
> 由于问财接口策略经常发生变化,请安装最新版本使用,遇到问题时,优先尝试升级解决## 视频教程
[如何使用Python获取同花顺问财数据?全网最简单方法!](https://www.bilibili.com/video/BV1NP411C7UU/)
# Demo
```python
import pywencaires = pywencai.get(query='退市股票', sort_key='退市@退市日期', sort_order='asc')
print(res)
```# API
## get(**kwargs)
根据问财语句查询结果
### 参数
#### query
必填,查询问句
> 老版本的question参数1.0版本以后会弃用,请以后统一使用query参数
#### sort_key
非必填,指定用于排序的字段,值为返回结果的列名
#### sort_order
非必填,排序规则,至为`asc`(升序)或`desc`(降序)
#### page
非必填,查询的页号,默认为1
#### perpage
非必填,每页数据条数,默认值100,由于问财做了数据限制,最大值为100,指定大于100的数值无效。
#### loop
非必填,是否循环分页,返回多页合并数据。默认值为`False`,可以设置为`True`或具体数值。
当设置为`True`时,程序会一直循环到最后一页,返回全部数据。
当设置具体数值`n`时,循环请求n页,返回n页合并数据。
#### query_type
非必填,默认为`stock`,当查询的类型不是股票的时候需要传,取值如下:
| 取值 | 含义 |
|-|-|
| stock | 股票 |
| zhishu | 指数 |
| fund | 基金 |
| hkstock | 港股 |
| usstock | 美股 |
| threeboard | 新三板 |
| conbond | 可转债 |
| insurance | 保险 |
| futures | 期货 |
| lccp | 理财 |
| foreign_exchange | 外汇 |#### retry
非必填,默认为10,表示请求失败后的重试次数。
#### sleep
非必填,默认为0,表示循环请求时,每次请求间隔多少秒。
#### log
非必填,默认为`False`,是否在控制台打印日志。
#### pro
非必填,默认为False,付费版传True,
> 必须传入cookie参数才能使用付费版
#### cookie
非必填,默认为None,免费版可以忽略,付费版必须传入cookie,获取付费使用权限。
```python
pywencai.get(question='近3个月每日市盈率', pro=True, cookie='xxxx')
```
cookie获取方法,复制请求头中的Cookie字段值![cookie](./cookie.png)
#### request_params
非必填,默认为`{}`,可以设置额外的request参数
```python
pywencai.get(query='昨日涨幅', sort_order='asc', loop=True, log=True, request_params={ 'proxies': proxies, 'timeout': (5, 10) })
```
> 具体参数参看:[https://requests.readthedocs.io/en/latest/api/#requests.request](https://requests.readthedocs.io/en/latest/api/#requests.request)#### no_detail
非必填,默认为`False`,当为`True`时,查询一些**详情类问题**不再会返回字典,而返回`None`,可以保证查询结果类型一直为`pd.DataFrame`或`None`。
#### find
非必填,默认为`None`,可以传一个数组,例如`['600519', '000010']`,数组内的对应标的会排列在DataFrame的最前面。
**【注意】** 1、该参数只有结果范围DataFrame时有效。2、配置该参数后,loop参数会失效,结果只会返回前100条。
#### user_agent
非必填,默认为`None`,可以自己传`user_agent`,不使用随机的生成的`user_agent`
### 返回值
当查询的是列表时,该方法返回一个`pandas`的`Dataframe`
当查询的是详情时,该方法返回一个字典,字典中可能包含若干个文本和`Dataframe`