一款人性化的雪球API包装。
xueqiu的Python项目详细描述
学秋
人性化的雪球API包装纸。
安装
1.首先,您需要安装一些基本组件。
2.然后,安装谷歌Chrome浏览器和chrome驱动程序
> copy chromedriver.exe %LOCALAPPDATA%\Programs\Python\Python37-32\
3.最后,通过pip
安装Xueqiu
$ pip install xueqiu # OR git+https://github.com/1dot75cm/xueqiu@master $ pip install git+https://github.com/1dot75cm/browsercookie@master $ python3 -m xueqiu xueqiu x.y.z - A humanize XueQiu API wrappers. :copyright: (c)2019 by 1dot75cm. :license: MIT, see LICENSE for more details.<享受>!!!!
快速启动
示例:
>>>news=xueqiu.news()# watch the news>>>news{'list':[<xueqiu.Post为何价值投资长期有效[https://xueqiu.com/8291461932/120351059]>,<xueqiu.Post韬蕴资本CEO温晓东怒斥贾跃亭:怎就一个[https://xueqiu.com/2095268812/120483699]>,<xueqiu.Post增持与回购20190122-201901[https://xueqiu.com/9206540776/120458648]>,<xueqiu.Post医药研发外包为什么这么红?(上)[https://xueqiu.com/1472391509/120481662]>,<xueqiu.Post医药大赛道之大分子生物药(下)[https://xueqiu.com/1472391509/120482094]>,<xueqiu.Post增强型指数基金,到底"强"在哪里?[https://xueqiu.com/8082119199/120480761]>,<xueqiu.Post价值投资不需要概率思维吗?—与董宝珍先生[https://xueqiu.com/3555476733/120245234]>,<xueqiu.Post邓晓峰的投资观[https://xueqiu.com/7649503965/120430145]>,<xueqiu.Post复利无敌:买入一只股票看这四点[https://xueqiu.com/1876906471/120479202]>,<xueqiu.Post再论安全边际[https://xueqiu.com/4465952737/120453192]>],'next_max_id':20323343}>>>p=news['list'][0]>>>"{}{} 赞{} 评论{} 转发{}{}".format(p.title,p.user.name,p.like_count,p.reply_count,p.retweet_count,p.target)'为何价值投资长期有效 房杨凯的投资世界 赞9 评论11 转发9 https://xueqiu.com/8291461932/120351059'>>>p.user.get_posts()# get user's article>>>p.user.posts{'count':622,'page':1,'maxpage':63,'list':[<xueqiu.Post[https://xueqiu.com/8291461932/120497097]>,<xueqiu.Post[https://xueqiu.com/8291461932/120491351]>,<xueqiu.Post[https://xueqiu.com/8291461932/120487476]>,<xueqiu.Post[https://xueqiu.com/8291461932/120487448]>,<xueqiu.Post[https://xueqiu.com/8291461932/120486037]>,<xueqiu.Post腾讯游戏帝国的护城河还在吗?[https://xueqiu.com/8291461932/120485596]>,<xueqiu.Post[https://xueqiu.com/8291461932/120473933]>,<xueqiu.Post[https://xueqiu.com/8291461932/120434054]>,<xueqiu.Post[https://xueqiu.com/8291461932/120434037]>,<xueqiu.Post[https://xueqiu.com/8291461932/120434020]>]}>>>p.user.posts['list'][0].text# content'回复@A8天道酬勤: 这个问题应该放在买之前。//@A8天道酬勤:回复@房杨凯的投资世界:假如花旗银行做假账,聂夫还会不会持有?'>>>p.user.posts['list'][0].like()# like this (need login)
API
用户类
包含用户相关方法的用户类。
用户对象属性:
id
-用户ID.配置文件
-用户的配置文件URL。名称
-用户名。城市
-城市,例如"上说明
-用户说明。好友数
-用户的好友数。关注者计数
-用户的粉丝数。文章数
-用户的文章数。库存数量
-库存数量。好友
-用于保存用户
好友对象。关注者
-为风扇使用save用户
对象。posts
-使用savepost
对象进行post。文章
-为用户文章使用savepost
对象。收藏夹
-将savepost
对象用于收藏夹文章。股票
-使用save股票
对象保存最喜欢的股票。热销股票
-对当前热销股票使用save股票
对象。
用户对象方法:
结交朋友(page:int=1)
-结交朋友并保存到self.friends
获取关注者(page:int=1)
-获取您的粉丝并保存到self.followers
获取帖子(page:int=1,count:int=10)
-获取帖子并保存到self.posts
获取文章(page:int=1,count:int=10)
-获取文章并保存到self.articles
获取收藏夹(page:int=1,count:int=20)
-获取您喜爱的文章并保存到self.favorites
获取库存(mkt:int=1,count:int=1000)
-获取库存并保存到self.stocks
获取热门股票(mkt:int=10,time-range:str="hour",count:int=10)
-获取热门股票。- :param
mkt
:(可选)市场类型,默认为10
。- 数值:全球
10
- 数值:全球
- :param
时间范围
:(可选)按时间范围列出的最热库存,默认值为小时
。- 值:
小时
,天
- 值:
- :param
count
:(可选)结果数,默认为10
- :param
发送验证码(电话:int)
-将验证码发送到手机。注意:一天只有5次。登录(uid:str='',passwd:str='',登录类型:str='电话')
-用户通过密码或验证码登录。如果cookie缓存存在,请先加载它并返回。否则,请登录并将cookie保存到文件(linux~/.xueqiu/cookie
或windows)。- :param
uid
:您的用户名或电话号码。 - :param
passwd
:您的密码或验证码。 - :param
登录类型
:(可选)登录类型,默认为电话
。- 值:
密码
,电话
- 值:
- :param
加载cookie()
-从本地文件或浏览器(Chrome或Firefox)加载cookie。您可以在Chrome浏览器上登录您的帐户,然后执行加载cookie()
,现在登录成功。
示例:
>>>u=User(2478797769)>>>u.name"红利基金">>>u.get_posts()>>>u.posts['list'][0].title'【你了解红利基金吗】红利基金(501029)热问快答!(12.31)'>>>u.get_favorites()>>>u.favorites['list'][0].title'2018年A股大数据盘点:30张图尽览市场热点'
课后
包含post相关方法的post类。
后置对象属性:
id
-邮政编码。用户
-发布作者。a用户
类对象。创建时间。a
箭头
类对象。目标
-发布URL。查看计数
-查看计数。回复计数
-回复计数。转发计数
-转发计数。收藏夹计数
-收藏夹计数。喜欢计数
-喜欢计数。标题
-文章标题。文本
-发布内容。全文
-文章的全部内容。注释
-使用save注释
对象进行发布。
后置对象方法:
get_content()
-获取文章内容并保存到self.full_text
获取评论(page:int=1,count:int=20,asc:str='false')
-获取文章评论并保存到self.comments
like()
就像这篇文章一样。(需要登录)不像()
-不像文章。(需要登录)收藏夹()
-收藏文章。(需要登录)unfavorite()
-取消文章的支持。(需要登录)
示例:
>>>p=Post('2478797769/78869335')>>>p.user.name"红利基金">>>p.created_at.format("YYYY-MM-DD")"2016-12-13">>>p.title'【你了解红利基金吗】红利基金(501029)热问快答!(12.31)'>>>p.target"https://xueqiu.com/2478797769/78869335">>>p.get_content()>>>p.full_text'目录:\n一、\n华宝标普中国A股红利机会指数证券投资基金\n......'>>>p.get_comments()>>>p.comments['list'][-1].text'为什么成份股中有很多次新股?百思不得其解'
评论类
包含注释相关方法的注释类。
注释对象属性:
id
-注释id.用户
-注释作者。a用户
类对象。发布
-评论文章。apost
类对象。创建时间。a
箭头
类对象。喜欢计数
-喜欢计数。文本
-注释内容。
注释对象方法:
like()
-喜欢注释。(需要登录)不像()
-不像注释。(需要登录)
示例:
>>>p=Post('2478797769/78869335')>>>p.get_comments()>>>c=p.comments['list'][0]>>>c.user.name'红利基金'>>>c.text'回复@孙浩云: 怎么可能....2018年跌幅为24.54%,较主流指数跌幅较小。不知道您50%多是哪儿看来的呢'
选择器类
选择器类实现一个库存过滤器。
选择器对象属性:
市场
-市场字符串,默认为sh
。- 值:
sh
,hk
,us
- 值:
查询
-包括带有选择器的默认参数。
选择器对象方法:
url()
-返回选择器url字符串。帮助(range:str="base",show:str="text")
-显示选择器参数。- :param
range
:(可选)参数range,默认为base
。 价值观:- 上海:行业,地区,基础,球,配额,财务比率,库存数据, 利润表、资产负债表、现金表
- 香港:工业、基地、球、配额
- 美国:工业,基地,球,配额,增长, 利润表、资产负债表、现金表
- :param
show
:(可选)输出帮助或返回生成器,默认为文本
。- 值:
文本
,键
- 值:
- :param
作用域(exchange:str='',indcode:str='',areacode:str='')
-设置库存选择器作用域。- :param
交换
:(可选)设置a-share外汇市场,默认为无
。- 值:
sh
,sz
或none
- 值:
- :param
indcode
:(可选)设置行业代码,默认值为none
。请参见self.help('industries')
- :param
areacode
:(可选)设置区号,默认为none
。请参见self.help('areas')
- :param
param(*args,**kwargs)
-设置库存选择器参数。- :param
*args
:(可选)set parameters key,默认值为all
。 例如,将设置self.param('pb,'mc')
参数pb=all&mc=all
params. - :param
**kwargs
:(可选)设置参数键和值。 例如,将设置self.param('pettm'=0_30)
参数pettm=0_30
param.
- :param
orderby(key:str='symbol')
-库存选择器结果按字段排序。- :param
键
:结果按键
排序,默认为符号
。 可以通过self.help('base')
查看关键参数
- :param
顺序(ord:str='desc')
-设置库存选择器结果排序。- :param
ord
:升序和降序,默认为desc
。- 值:
asc
,desc
- 值:
- :param
页面(页面:int=1)
-设置股票选择结果页码。计数(大小:int=10)
-股票选择结果的数量。run()
-发送股票筛选程序请求并返回[股票类别]
列表。
示例:
>>>s=Selector("SH")# scope 深市,房地产,浙江地区# param 筛选总市值,18年3季度ROE 0-30%# orderby 按市值排序# order 升序排列# page 第2页# count 每页2个>>>result=s.scope('SZ','K70','CN330000').param('mc',roediluted_20180930='0_30').orderby('mc').order('asc').page(2).count(2).run()>>>result['list'][<xueqiu.Stock荣安地产[SZ000517]>,<xueqiu.Stock滨江集团[SZ002244]>]
股票类别
包含股票相关方法的股票类。
股票对象属性:
Base
符号
-库存符号。代码
-库存代码。名称
-股票名称。当前
-当前价格。当前年份百分比
-当前年份回报。百分比
-变化率。变更
-变更金额。打开
-立即定价。最后一次关闭
-最后一次关闭。高
-最高。低
-最低。平均价格
平均价格。成交量
-成交量。金额
-金额。周转率
-周转率。振幅
-振幅。市场资本
-市场资本。浮动市场资本
-浮动市场资本。股份总数
-股份总数。- 流通股
货币
-货币单位。交易所
-证券交易所。发布日期
-发布日期。a箭头
类对象。
扩展
上限
-库存上限。限额下降
-库存限额下降。high52w
-52周中的最高值。low52w
-52周中最低的一周。音量比
-音量比。pe-lyr
-pe-lyr.pe-ttm
-pe-ttm.pe_预测
-pe预测。pb
-价格/账面价值比率。- 每股收益-每股收益。
bps
-每股净资产。股息
-股票股息。股息收益率
股票股息收益率。利润
-净利润。利润预测
-利润预测。利润四
-过去四个季度的利润。
其他
时间
-当前时间。a箭头
类对象。posts
-用于保存post
对象以备库存。关注者
-用于为stock的fans保存用户
对象。prousers
-用于为股票的专业用户保存用户
对象。流行股票
-流行股票。行业
-行业股票。历史记录
-库存历史记录。
stock对象方法:
刷新(dt:dict={})
-获取当前库存数据并更新self.time
获取文章(page:int=1,count:int=20,sort:str="time",source:str="all")
-获取文章并保存到self.posts
。- :param
page
:(可选)页码,默认值为1
- :param
count
:(可选)结果数,默认为20
- :param
排序
:(可选)订单类型,默认为时间
。- 价值:
时间
关联性,回复
关联性关联性
- 价值:
- :param
source
:(可选)结果源,默认为all
。- 值:
全部
,用户
通知新闻
- 值:
- :param
获取关注者(page:int=1,count:int=15)
-获取股票粉丝并保存到self.followers
。- :param
page
:(可选)页码,默认值为1
- :param
count
:(可选)结果数,默认为15
- :param
获取Prousers(count:int=5)
-获取Stock Professional用户并保存到self.prousers
获取pop stocks(count:int=8)
-获取popstocks并保存到self.popstocks
获取行业股票(count:int=8)
-获取行业股票并保存到self.industries
获取历史记录(begin:str='-1m',end:str=arrow.now(),period:str='day')
-获取股票历史数据并保存到self.history
。- :param
begin
:结果的开始日期。- 值:-1w-2w-1m-3m-6m-1y-2y-3y-5y cyear问题或yyy-mm-dd
- :param
结束
:(可选)结果的结束日期,默认为现在
- :param
period
:(可选)设置日期时段,默认为天
。- 数值:日-周-月-季度-年120m 60m 30m 15m 5m 1m
- :param
收入(季度:str='all',count:int=12,lang:str='cn')
-获取股票收入表。余额(季度:str='all',count:int=12,lang:str='cn')
-获取库存资产负债表。现金流(季度:str='all',count:int=12,lang:str='cn')
-获取库存现金流表。
示例:
>>>s=Stock("SH601318")>>>s.symbol"SH601318">>>s.name"中国平安">>>s.market_capital1119664786363.0>>>s.issue_date.format("YYYY-MM-DD")"2007-02-28">>>s.refresh()# update stock data>>>s.get_posts(){'count':188745,'page':1,'maxpage':100,'list':[<xueqiu.Post[https://xueqiu.com/1566609429/120543602]>,<xueqiu.Post[https://xueqiu.com/1083048635/120542397]>,<xueqiu.Post[https://xueqiu.com/6376335219/120542355]>,<xueqiu.Post[https://xueqiu.com/8335420516/120542213]>,<xueqiu.Post[https://xueqiu.com/2706248223/120542082]>,<xueqiu.Post[https://xueqiu.com/4298761680/120542015]>,<xueqiu.Post[https://xueqiu.com/2856403580/120541995]>,<xueqiu.Post[https://xueqiu.com/6122867052/120541786]>,<xueqiu.Post[https://xueqiu.com/1083048635/120541288]>,<xueqiu.Post[https://xueqiu.com/9598902646/120541255]>]}>>>s.get_popstocks()>>>s.popstocks[<xueqiu.Stock招商银行[SH600036]>,<xueqiu.Stock兴业银行[SH601166]>,<xueqiu.Stock民生银行[SH600016]>,<xueqiu.Stock贵州茅台[SH600519]>,<xueqiu.Stock苏宁易购[SZ002024]>,<xueqiu.Stock万科A[SZ000002]>,<xueqiu.Stock腾讯控股[00700]>,<xueqiu.Stock中绿[02988]>]>>>s.get_industry_stocks()>>>s.industries{'industryname':'非银金融','list':[<xueqiu.Stock九鼎投资[SH600053]>,<xueqiu.Stock华林证券[SZ002945]>,<xueqiu.Stock爱建集团[SH600643]>,<xueqiu.Stock中航资本[SH600705]>,<xueqiu.Stock华铁科技[SH603300]>,<xueqiu.Stock民生控股[SZ000416]>,<xueqiu.Stock熊猫金控[SH600599]>,<xueqiu.Stock宏源证券[SZ000562]>]}>>>s.get_histories('2019-01-07','2019-01-11')>>>s.history.iloc[:,0:8]datevolumeopenhighlowclosechgpercentturnoverrate2019-01-077659300757.0957.1755.9056.30-0.29-0.510.702019-01-085599209256.0556.0955.2055.80-0.50-0.890.512019-01-098191461356.2057.6055.9656.951.152.060.752019-01-106732822356.8757.8256.5557.500.550.970.612019-01-114575697358.0058.2957.5058.070.570.990.42>>>s.history.iloc[:,8:17]datema5ma10ma20ma30pepbpspcfmarket_capital2019-01-0755.97056.88559.252060.714310.0731.9491.0519723.5360001.029178e+122019-01-0855.91056.63158.892060.48639.9841.9321.0426293.5045971.020037e+122019-01-0956.26456.50158.630560.278010.1901.9721.0641173.5768241.041060e+122019-01-1056.62856.43058.397060.091010.2881.9911.0743943.6113681.051114e+122019-01-1156.92456.50758.177559.901010.3902.0111.0850443.6471671.061534e+12>>>s.get_histories('-1w')>>>s.history.iloc[:,0:8]datevolumeopenhighlowclosechgpercentturnoverrate2019-01-244494061859.6160.5259.2260.430.941.580.412019-01-256724591160.5061.7860.4361.290.861.420.622019-01-285816488461.8062.4161.2061.520.230.380.532019-01-293951929461.3861.9060.9861.650.130.210.362019-01-303100032360.8861.8660.7861.25-0.40-0.650.27>>>s.get_histories('-1y')>>>s.history[['pe','pb','ps']].describe()pepbpscount243.000000243.000000243.000000mean11.8405882.2739961.217041std1.3574890.2152170.110052min9.7289001.9110001.03104425%10.8494502.1432001.15055450%11.5049002.2373001.19770075%12.6286002.3452001.251150max15.5967002.9354001.559700>>>s.income()[['净利润','营业总收入']]report_name净利润营业总收入2018Q38.948900e+107.504560e+112018Q26.477000e+105.348140e+112018Q12.895100e+103.104520e+112017Q49.997800e+108.908820e+11...>>>s.balance()[['资产合计','负债合计']]report_name资产合计负债合计2018Q36.910935e+126.260499e+122018Q26.851431e+126.216339e+122018Q16.725766e+126.108353e+122017Q46.493075e+125.905158e+12...>>>s.cash_flow()['经营活动现金流量净额']report_name经营活动现金流量净额2018Q31.775950e+112018Q21.616070e+112018Q11.398670e+112017Q41.212830e+11...
基金类别
包含基金相关方法的基金类。
基金对象属性:
基金净值
基金净值猜测
-估计值。基金资产净值溢价
-基金资产净值溢价率。基金历史记录
-基金历史记录。基金股票
-组成股票。基金权重
股票权重。
基金对象方法:
获取基金股票(year:str=",mouth:str="12")
-从获得基金股票
获取基金资产净值()
-获取基金资产净值。获取基金历史记录(page:int=1,size:int=90)
-获取基金历史净值。计算保费()
-计算基金保费。refresh_all()
-刷新所有基金股票对象。
示例:
>>>f=Fund('501301')>>>f.symbol"SH501301">>>f.fund_nav['2019-01-29',1.1311,1.1311,'-0.47%']>>>f.get_fund_stocks()>>>f.fund_stocksstocksweight0中国移动[00941]0.10821工商银行[01398]0.09752腾讯控股[00700]0.09703建设银行[00939]0.09324中国平安[02318]0.09225中国银行[03988]0.06426中国海洋石油[00883]0.05227中国石化[00386]0.03438中国人寿[02628]0.02979招商银行[03968]0.0267>>>list(f.fund_stocks.weight)[0.1082,0.0975,0.097,0.0932,0.0922,0.0642,0.0522,0.0343,0.0297,0.0267]>>>f.get_fund_histories('2019-01-07','2019-01-11')>>>f.fund_historydatenavcnavpercent2019-01-071.07431.07430.702019-01-081.06791.0679-0.602019-01-091.09491.09492.532019-01-101.09441.0944-0.052019-01-111.09641.09640.18>>>f.get_fund_histories('-1w')datenavcnavpercent2019-01-251.14131.14132.022019-01-281.13641.1364-0.432019-01-291.13111.1311-0.472019-01-301.13791.13790.602019-01-311.14751.14750.84
获取所有资金功能
示例:
α、α、α十获取所有基金排名功能
示例:
YYY11获得经济功能
示例:
是啊。获得经济和中国功能
示例:
啊!13!获取数据和投资功能
示例:
AAAAAAA H14获取雅虎功能的数据
示例:
是啊。获取配额雅虎功能
示例:
啊!获取股票保证金功能
示例:
啊!获取hsgt历史记录功能
示例:
AAAAAAA 18getu hsgt u top10功能
示例:
啊!获取hsgt保持功能
示例:
AAAAAAA H20Baiduindex类
示例:
AAAAAAAAA 21搜索功能
搜索(query:str=",查询类型:str="stock",symbol:str=",count:int=10,page:int=1,sort:str="time",source:str="user")
-发送搜索请求。- :param
查询
:查询字符串。 - :param
查询类型
:(可选)查询请求的类型,默认为库存
。- 价值:股票、邮政、用户
- :param
符号
:(可选)股票符号。 - :param
count
:(可选)结果数,默认为20
- :param
page
:(可选)页码,默认值为1
- :param
排序
:(可选)订单类型,默认为时间
。- 值:时间戳,reply35780;-35770;relevance40664;-35748;
- :param
source
:(可选)结果的源,默认为user
。- 值:all,user35752;-35770;news
- :return:一个:类:
对象<;实例u id>;
对象的列表。对象类:stock、post或user - :类型:列表([ins1,ins2,…])
- :param
新闻功能
新闻(类别:int=-1,计数:int=10,最大id:int=-1)
-获取新闻。- :param
类别
:(可选)新闻类型,默认为-1
。- 值:0324651039064;030452;025773;627818;055032929;102032929;101022522;0104031169;02121153;11325151;02013510277734、04454;038505110
- :param
count
:(可选)结果数,默认为10
- :param
max id
:(可选)新闻的最大id,默认为-1
- :return:类的列表:
post<;instance id>;
对象。 - :类型:列表([post1,post2,…])
- :param
Utils模块
本模块包含一些实用程序。
获取u cookies()
-从本地文件、浏览器和selenium加载cookies。返回一个类对象。get'u session()
-获取请求会话。清除-u html(tree:str)
-clean html。检查U符号(代码:str)
-检查库存符号。汇率(date:str=",code:str="美元")
-按日期获取货币汇率。- 代码:
exusd(日期:str"
-仅适用于usd
exhkd(日期:str"
-仅适用于hkd
示例:
AAAAAAAAA 23