graysilver / wencai Goto Github PK
View Code? Open in Web Editor NEWThis is a wencai crawler.(i问财的策略回测接口的Pythonic工具包)
License: MIT License
This is a wencai crawler.(i问财的策略回测接口的Pythonic工具包)
License: MIT License
可能要更新WencaiCookie.getHeXinVByHttp
从2023-08-05开始,感觉是获取Hexin_v的方法改变了。
谢谢
strategy = wc.get_strategy("上升通道")
print(strategy)
返回
日期 股票代码 股票简称 涨跌幅 当日收盘价(元) dde大单净量(%) 股本规模 换手率
0 2018-11-06 000002 万科A -2.36 24.04 -0.10 超大盘股 0.60
1 2018-11-06 000008 神州高铁 3.43 4.52 -0.04 中盘股 2.03
和问财主页上返回的结果不一致
最近接口可能更新了,搜索结果只能返回100条结果
请问各位大哥目前的验证码机制可以如何破解呢,是否有相关的项目可以参考呢,谢谢
got an unexpected keyword argument 'execute_path'
FileNotFoundError: [Errno 2] No such file or directory: 'AppData\Local\Programs\Python\Python37-32\lib\site-packages\wencai/js/hexin.js'
result = wc.search(query='当前热股')
File "D:\wencai\core\event.py", line 48, in search
return Wencai(proxies=globals()['global_proxies'], verify=globals()['verify']).search(query_string=query)
File "D:\wencai\core\crawler.py", line 102, in search
result = r.json()['data']['answer'][0]['txt'][0]['content']['components'][0]['data']['datas']
TypeError: list indices must be integers or slices, not str
print(r.profit_data) # 累计收益数据
print(r.backtest_data) # 报告评级
print(r.condition_data) # 准确回测语句
print(r.history_detail(period='2')) # 历史明细查询
print(r.history_pick(trade_date='2020-11-19', hold_num=1)) # 策略选股
history_detail 这一句输出的dataframe为空是怎么回事?
Empty DataFrame
Columns: []
Index: []
Traceback (most recent call last):
File "D:\develope\IdeaProjects\PythonHelloword.idea\src\WenCaiAPI.py", line 192, in
str =wc.search('今日热股')
File "D:\develope\IdeaProjects\python3.9_space\lib\site-packages\wencai\core\event.py", line 48, in search
return Wencai(proxies=globals()['global_proxies'], verify=globals()['verify']).search(query_string=query)
File "D:\develope\IdeaProjects\python3.9_space\lib\site-packages\wencai\core\crawler.py", line 102, in search
result = r.json()['data']['answer'][0]['txt'][0]['content']['components'][0]['data']['datas']
File "D:\develope\IdeaProjects\python3.9_space\lib\site-packages\requests\models.py", line 975, in json
raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)
requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
这个是被反爬限制了吗?
请大神考虑一下这个feature
www.iwencai.com
搜索条件: 当前热股
然后啥都没有返回啊 谢谢大牛牛指教
r = wc.get_strategy(query='当前热股',
start_date='2018-10-09',
end_date='2019-07-16',
period='1',
fall_income=1,
lower_income=5,
upper_income=9,
day_buy_stock_num=1,
stock_hold=2)
print(r.profit_data) # 累计收益数据
print(r.backtest_data) # 报告评级
print(r.condition_data) # 准确回测语句
print(r.history_detail(period='1')) # 历史明细查询
print(r.history_pick(trade_date='2019-07-16', hold_num=1)) # 策略选股
Please consider proxies
非常需要这个包,期待更新。
爬一段时间后,会需要你再填一次验证码才能继续爬,我登陆网页输入验证码后,接着用本地的cookies可以接着爬取,这个作者能维护一下吗?
how from wencai package to login iwencai web page?
目前如使用wc.search(“找出今天的涨停板”) 只会返回50条数据,能否完善返回全部的数据呢。谢谢!
比如,通过专业版问财账号访问接口
{'status_code': -302, 'status_msg': '缺少必要参数', 'data': [], 'logid': '7795b8d93a43ba01234686dc6edbf071'}
D:.virtualenvs\study\lib\site-packages\urllib3\connectionpool.py:981: InsecureRequestWarning: Unverified HTTPS request is being made to host 'search.10jqka.com.cn'. Adding certificate verification is strongly advised. See: https://urllib3.readthedocs.io/en/latest/advanced-usage.html#ssl-warnings
warnings.warn(
Traceback (most recent call last):
File "d:\sourcecodes\projects\seekentries.py", line 3, in
result = wc.search(query="当前热股")
File "D:.virtualenvs\study\lib\site-packages\wencai\core\event.py", line 48, in search
return Wencai(proxies=globals()['global_proxies'], verify=globals()['verify']).search(query_string=query)
File "D:.virtualenvs\study\lib\site-packages\wencai\core\crawler.py", line 102, in search
result = r.json()['data']['answer'][0]['txt'][0]['content']['components'][0]['data']['datas']
TypeError: list indices must be integers or slices, not str
wc.search接口报错,好像用不了了:
`Traceback (most recent call last):
File "C:\Users\Administrator\Anaconda3\lib\site-packages\urllib3\connectionpool.py", line 700, in urlopen
self._prepare_proxy(conn)
File "C:\Users\Administrator\Anaconda3\lib\site-packages\urllib3\connectionpool.py", line 994, in _prepare_proxy
conn.connect()
File "C:\Users\Administrator\Anaconda3\lib\site-packages\urllib3\connection.py", line 364, in connect
self.sock = conn = self._connect_tls_proxy(hostname, conn)
File "C:\Users\Administrator\Anaconda3\lib\site-packages\urllib3\connection.py", line 505, in connect_tls_proxy
ssl_context=ssl_context,
File "C:\Users\Administrator\Anaconda3\lib\site-packages\urllib3\util\ssl.py", line 453, in ssl_wrap_socket
ssl_sock = ssl_wrap_socket_impl(sock, context, tls_in_tls)
File "C:\Users\Administrator\Anaconda3\lib\site-packages\urllib3\util\ssl.py", line 495, in _ssl_wrap_socket_impl
return ssl_context.wrap_socket(sock)
File "C:\Users\Administrator\Anaconda3\lib\ssl.py", line 412, in wrap_socket
session=session
File "C:\Users\Administrator\Anaconda3\lib\ssl.py", line 850, in _create
self.do_handshake()
File "C:\Users\Administrator\Anaconda3\lib\ssl.py", line 1108, in do_handshake
self._sslobj.do_handshake()
FileNotFoundError: [Errno 2] No such file or directory
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "C:\Users\Administrator\Anaconda3\lib\site-packages\requests\adapters.py", line 499, in send
timeout=timeout,
File "C:\Users\Administrator\Anaconda3\lib\site-packages\urllib3\connectionpool.py", line 786, in urlopen
method, url, error=e, _pool=self, _stacktrace=sys.exc_info()[2]
File "C:\Users\Administrator\Anaconda3\lib\site-packages\urllib3\util\retry.py", line 592, in increment
raise MaxRetryError(_pool, url, error or ResponseError(cause))
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='search.10jqka.com.cn', port=443): Max retries exceeded with url: /unifiedwap/unified-wap/v2/result/get-robot-data (Caused by ProxyError('Cannot connect to proxy.', FileNotFoundError(2, 'No such file or directory')))
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "", line 1, in
File "C:\Users\Administrator\Anaconda3\lib\site-packages\wencai\core\event.py", line 48, in search
return Wencai(proxies=globals()['global_proxies'], verify=globals()['verify']).search(query_string=query)
File "C:\Users\Administrator\Anaconda3\lib\site-packages\wencai\core\crawler.py", line 101, in search
data=payload, force_cookies=True)
File "C:\Users\Administrator\Anaconda3\lib\site-packages\wencai\core\session.py", line 51, in post_result
return super(Session, self).post(url=url, data=data, json=json, **kwargs)
File "C:\Users\Administrator\Anaconda3\lib\site-packages\requests\sessions.py", line 635, in post
return self.request("POST", url, data=data, json=json, **kwargs)
File "C:\Users\Administrator\Anaconda3\lib\site-packages\requests\sessions.py", line 587, in request
resp = self.send(prep, **send_kwargs)
File "C:\Users\Administrator\Anaconda3\lib\site-packages\requests\sessions.py", line 723, in send
history = [resp for resp in gen]
File "C:\Users\Administrator\Anaconda3\lib\site-packages\requests\sessions.py", line 723, in
history = [resp for resp in gen]
File "C:\Users\Administrator\Anaconda3\lib\site-packages\requests\sessions.py", line 274, in resolve_redirects
**adapter_kwargs,
File "C:\Users\Administrator\Anaconda3\lib\site-packages\requests\sessions.py", line 701, in send
r = adapter.send(request, **kwargs)
File "C:\Users\Administrator\Anaconda3\lib\site-packages\requests\adapters.py", line 559, in send
raise ProxyError(e, request=request)
requests.exceptions.ProxyError: HTTPSConnectionPool(host='search.10jqka.com.cn', port=443): Max retries exceeded with url: /unifiedwap/unified-wap/v2/result/get-robot-data (Caused by ProxyError('Cannot connect to proxy.', FileNotFoundError(2, 'No such file or directory')))`
r = wc.get_strategy() 会返回一个策略选股表,但其中无法查询所属行业、概念、首次涨停时间、最终涨停时间等信息。
建议有如下查询功能:
wc.query(w= r"上一交易日没有涨停;市值大于100亿;今日涨停时间",
fields=["涨停时间",“总市值”])-> pd.DataFrame,
多次循环运行search功能出现json报错:
JSONDecodeError: Extra data: line 1 column 1 (char 0)
望大佬解决
window.location.href="http://www.iwencai.com/traceback/strategy/submit,这是个啥?
使用最新的wencai,调用接口wc.search('今日涨停股')
得到Error ‘list indices must be integers or slices, not str’
发现访问https://search.10jqka.com.cn/unifiedwap/unified-wap/v2/result/get-robot-data
返回数据为{'status_code': -302, 'status_msg': '缺少必要参数', 'data': [], 'logid': '1adec78870b6c3ca66aacc8fb528a4a8'}
里面的data为空
大家有遇到这个问题吗?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.