一款人性化的雪球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)-获取热门股票。

    • :parammkt:(可选)市场类型,默认为10
      • 数值:全球10
    • :param时间范围:(可选)按时间范围列出的最热库存,默认值为小时
      • 值:小时
    • :paramcount:(可选)结果数,默认为10
  • 发送验证码(电话:int)-将验证码发送到手机。注意:一天只有5次。

  • 登录(uid:str='',passwd:str='',登录类型:str='电话')-用户通过密码或验证码登录。如果cookie缓存存在,请先加载它并返回。否则,请登录并将cookie保存到文件(linux~/.xueqiu/cookie或windows)。

    • :paramuid:您的用户名或电话号码。
    • :parampasswd:您的密码或验证码。
    • :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
    • 值:shhkus
  • 查询-包括带有选择器的默认参数。

选择器对象方法:

  • url()-返回选择器url字符串。
  • 帮助(range:str="base",show:str="text")-显示选择器参数。
    • :paramrange:(可选)参数range,默认为base。 价值观:
      • 上海:行业,地区,基础,球,配额,财务比率,库存数据, 利润表、资产负债表、现金表
      • 香港:工业、基地、球、配额
      • 美国:工业,基地,球,配额,增长, 利润表、资产负债表、现金表
    • :paramshow:(可选)输出帮助或返回生成器,默认为文本
      • 值:文本
  • 作用域(exchange:str='',indcode:str='',areacode:str='')-设置库存选择器作用域。
    • :param交换:(可选)设置a-share外汇市场,默认为
      • 值:shsznone
    • :paramindcode:(可选)设置行业代码,默认值为none。请参见self.help('industries')
    • :paramareacode:(可选)设置区号,默认为none。请参见self.help('areas')
  • param(*args,**kwargs)-设置库存选择器参数。
    • :param*args:(可选)set parameters key,默认值为all。 例如,将设置self.param('pb,'mc')参数pb=all&mc=allparams.
    • :param**kwargs:(可选)设置参数键和值。 例如,将设置self.param('pettm'=0_30)参数pettm=0_30param.
  • orderby(key:str='symbol')-库存选择器结果按字段排序。
    • :param:结果按排序,默认为符号。 可以通过self.help('base')查看关键参数
  • 顺序(ord:str='desc')-设置库存选择器结果排序。
    • :paramord:升序和降序,默认为desc
      • 值:ascdesc
  • 页面(页面: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
    • :parampage:(可选)页码,默认值为1
    • :paramcount:(可选)结果数,默认为20
    • :param排序:(可选)订单类型,默认为时间
      • 价值:时间关联性,回复关联性关联性
    • :paramsource:(可选)结果源,默认为all
      • 值:全部用户通知新闻
  • 获取关注者(page:int=1,count:int=15)-获取股票粉丝并保存到self.followers
    • :parampage:(可选)页码,默认值为1
    • :paramcount:(可选)结果数,默认为15
  • 获取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
    • :parambegin:结果的开始日期。
      • 值:-1w-2w-1m-3m-6m-1y-2y-3y-5y cyear问题或yyy-mm-dd
    • :param结束:(可选)结果的结束日期,默认为现在
    • :paramperiod:(可选)设置日期时段,默认为
      • 数值:日-周-月-季度-年120m 60m 30m 15m 5m 1m
  • 收入(季度: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 18

getu hsgt u top10功能

示例:

啊!

获取hsgt保持功能

示例:

AAAAAAA H20

Baiduindex类

示例:

AAAAAAAAA 21

搜索功能

  • 搜索(query:str=",查询类型:str="stock",symbol:str=",count:int=10,page:int=1,sort:str="time",source:str="user")-发送搜索请求。
    • :param查询:查询字符串。
    • :param查询类型:(可选)查询请求的类型,默认为库存
      • 价值:股票、邮政、用户
    • :param符号:(可选)股票符号。
    • :paramcount:(可选)结果数,默认为20
    • :parampage:(可选)页码,默认值为1
    • :param排序:(可选)订单类型,默认为时间
      • 值:时间戳,reply35780;-35770;relevance40664;-35748;
    • :paramsource:(可选)结果的源,默认为user
      • 值:all,user35752;-35770;news
    • :return:一个:类:对象<;实例u id>;对象的列表。对象类:stock、post或user
    • :类型:列表([ins1,ins2,…])

新闻功能

  • 新闻(类别:int=-1,计数:int=10,最大id:int=-1)-获取新闻。
    • :param类别:(可选)新闻类型,默认为-1
      • 值:0324651039064;030452;025773;627818;055032929;102032929;101022522;0104031169;02121153;11325151;02013510277734、04454;038505110
    • :paramcount:(可选)结果数,默认为10
    • :parammax id:(可选)新闻的最大id,默认为-1
    • :return:类的列表:post<;instance id>;对象。
    • :类型:列表([post1,post2,…])

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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java序列化和复制对象   Java:一种JPA搜索规范,用于在另一个字符串中查找子字符串标记,该字符串也包含标记   函数式编程在Java 8中如何在不转换为数组的情况下检查流对象的内容?   java方法来查找要添加对象的ArrayList索引   数组Java Arrayindexoutofboundexception   java找不到安卓。拱生命周期:扩展:2.1.0。所需人员:项目:app>com。贝宝。签出:安卓sdk:0.1.0   Java Spring的JpaRepository:找不到用户类型的findbyUser属性   JAVAlang.NoSuchMethodError:安卓。操作系统。环境isExternalStorageRemovable   java使用JAX RS捕获未受影响的异常   如何在JavaSpringTomcat中快速关闭无响应websocket?   java ExoPlayer:将控制器放置在视频下方,不与视频重叠   windows server 2008为什么即使我是管理员,在使用Java访问某些文件时也会被拒绝访问?   java将表连接到jtextbox