Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

daka_app 返回异常 #2

Closed
reizhi opened this issue Apr 26, 2017 · 13 comments
Closed

daka_app 返回异常 #2

reizhi opened this issue Apr 26, 2017 · 13 comments

Comments

@reizhi
Copy link

reizhi commented Apr 26, 2017

app已经领取过钢镚,返回异常

2017-04-26 12:48:26,009 jobs[daka_app] ERROR: 返回数据结构可能有变化, 获取打卡数据失败: int() argument must be a string, a bytes-like object or a number, not 'NoneType'
Traceback (most recent call last):
  File "E:\JD-Coin-master\app\job\daka_app.py", line 28, in is_signed
    sign_days = int(util.find_value(days_pattern, r.text))
TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'
2017-04-26 12:48:26,009 jobs[daka_app] WARNING: dakaActType 参数未找到, 页面可能有变化, 打卡可能不成功.
2017-04-26 12:48:26,176 jobs[daka_app] INFO: 打卡成功: False; Message: 活动不存在或已下线!
@yiqian987
Copy link

同样的问题

@CaoZ
Copy link
Owner

CaoZ commented Apr 27, 2017

原因是京东客户端钢镚打卡的页面地址变了, 现在的地址是 https://m.jr.jd.com/spe/qyy/main/index.html?userType=41

代码已更新~

@reizhi
Copy link
Author

reizhi commented Apr 27, 2017

更新后无法登录

2017-04-27 15:55:01,913 jobs[daka] ERROR: 登录失败: LogInError('登录 QQ 失败: 提交参数错误,请检查。(3701473868)',)
2017-04-27 15:55:01,913 jobs[daka] INFO: Job End.
2017-04-27 15:55:01,913 jobs[daka] INFO: Job Start: 京东客户端钢镚打卡
2017-04-27 15:55:02,478 jobs[daka] INFO: 登录状态: False
2017-04-27 15:55:02,478 jobs[daka] INFO: 进行登录...
2017-04-27 15:55:02,790 jobs[daka] ERROR: 登录失败: LogInError('登录 QQ 失败: 提交参数错误,请检查。(1823473916)',)
2017-04-27 15:55:02,790 jobs[daka] INFO: Job End.
2017-04-27 15:55:02,790 jobs[daka] INFO: Job Start: 京东客户端签到领京豆
2017-04-27 15:55:03,009 jobs[daka] INFO: 登录状态: True
2017-04-27 15:55:03,103 jobs[bean_app] ERROR: 返回数据结构可能有变化, 获取签到数据失败: int() argument must be a string, a bytes-like object or a number, not 'NoneType'
Traceback (most recent call last):
  File "E:\JD-Coin-master\app\job\bean_app.py", line 29, in is_signed
    sign_days = int(util.find_value(days_pattern, r.text))
TypeError: int() argument must be a string, a bytes-like object or a number, not 'NoneType'
2017-04-27 15:55:03,405 root[main] ERROR: # 任务运行出错: JSONDecodeError('Expecting value: line 1 column 1 (char 0)',)
Traceback (most recent call last):
  File "E:\JD-Coin-master\app\main.py", line 22, in main
    job.run()
  File "E:\JD-Coin-master\app\job\daka.py", line 48, in run
    self.job_success = self.sign()
  File "E:\JD-Coin-master\app\job\bean_app.py", line 43, in sign
    as_json = r.json()
  File "C:\Users\reizh\AppData\Local\Programs\Python\Python36\lib\site-packages\requests\models.py", line 866, in json
    return complexjson.loads(self.text, **kwargs)
  File "C:\Users\reizh\AppData\Local\Programs\Python\Python36\lib\json\__init__.py", line 354, in loads
    return _default_decoder.decode(s)
  File "C:\Users\reizh\AppData\Local\Programs\Python\Python36\lib\json\decoder.py", line 339, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "C:\Users\reizh\AppData\Local\Programs\Python\Python36\lib\json\decoder.py", line 357, in raw_decode
    raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

@CaoZ
Copy link
Owner

CaoZ commented Apr 27, 2017

@reizhi 这个情况还真没遇到过...

更新下 qqlib: pip install qqlib -U, 然后删除下 cookie (data 目录下 cookies 文件), 试试看能不能登录

@reizhi
Copy link
Author

reizhi commented Apr 27, 2017

not working :-(

@CaoZ
Copy link
Owner

CaoZ commented Apr 27, 2017

@reizhi 直接输入 python -m qqlib, 这样能不能登录 QQ 呢? https://github.com/gera2ld/qqlib#%E5%BF%AB%E9%80%9F%E5%BC%80%E5%A7%8B

@reizhi
Copy link
Author

reizhi commented Apr 27, 2017

@CaoZ 也是一样

C:\Users\reizh>pip3 install qqlib -U
Collecting qqlib
  Using cached qqlib-1.1.1-py2.py3-none-any.whl
Requirement already up-to-date: requests in c:\users\reizh\appdata\local\programs\python\python36\lib\site-packages (from qqlib)
Requirement already up-to-date: rsa in c:\users\reizh\appdata\local\programs\python\python36\lib\site-packages (from qqlib)
Requirement already up-to-date: pyasn1>=0.1.3 in c:\users\reizh\appdata\local\programs\python\python36\lib\site-packages (from rsa->qqlib)
Installing collected packages: qqlib
  Found existing installation: qqlib 1.0.0
    Uninstalling qqlib-1.0.0:
      Successfully uninstalled qqlib-1.0.0
Successfully installed qqlib-1.1.1

C:\Users\reizh>python3 -m qqlib
QQ: 3458*****
Password:
Traceback (most recent call last):
  File "C:\Users\reizh\AppData\Local\Programs\Python\Python36\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "C:\Users\reizh\AppData\Local\Programs\Python\Python36\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\Users\reizh\AppData\Local\Programs\Python\Python36\lib\site-packages\qqlib\__main__.py", line 18, in <module>
    qq.login()
  File "C:\Users\reizh\AppData\Local\Programs\Python\Python36\lib\site-packages\qqlib\__init__.py", line 193, in login
    raise LogInError(r[4])
qqlib.LogInError: 提交参数错误,请检查。(806355476)

@CaoZ
Copy link
Owner

CaoZ commented Apr 28, 2017

@reizhi 嗯嗯,可能是 qqlib 的问题...

你可以用内置浏览器的方式登录,这个不依赖 QQ,直接用京东帐号就行

@yiqian987
Copy link

yiqian987 commented Apr 28, 2017 via email

@yiqian987
Copy link

python -m qqlib 这样直接调用登录没问题 脚本中登录会有问题 我这边报的是
`2017-04-28 13:38:01,602 jobs[daka] INFO: Job Start: 京东金融签到领京豆
2017-04-28 13:38:01,773 jobs[daka] INFO: 登录状态: False
2017-04-28 13:38:01,774 jobs[daka] INFO: 进行登录...
2017-04-28 13:38:02,432 jobs[daka] ERROR: 通过 QQ 登录京东失败.
2017-04-28 13:38:02,434 jobs[daka] ERROR: Last page url: https://graph.qq.com/oa
uth/show?which=Login&display=pc&auth_time=1493357882&client_id=100273020&src=1&s
tate=&response_type=code&scope=&redirect_uri=https%3A%2F%2Fqq.jd.com%2Fnew%2Fqq%
2Fcallback.action%3Fview%3Dnull
2017-04-28 13:38:02,435 jobs[daka] ERROR: Last page content:

<title>QQ帐号安全登录</title> <script type="text/javascript"> window.__start = +new Date();
document.domain = 'qq.com'; // todo 这里为什么要跨域
var _speedTiming = [+new Date];
(function error(monitorId){
    var BID = 130;
    var errorTransport = null;
    var monitorTransport = null;
    window.onerror = function(errorMsg, url, lineNumber) {
        var bid = 'bid=' + BID;
        var mid = '';
        var msg = 'msg=' + encodeURIComponent([errorMsg, url, lineNumber, na

vigator.userAgent].join("|_|"));
var src = 'https://badjs.qq.com/cgi-bin/js_report?'+ [bid,mid,msg].j
oin("&");
errorTransport = new Image;
errorTransport.onerror = errorTransport.onload = function(){
errorTransport = errorTransport.onerror = errorTransport.onload
= null ;
};
// errorTransport.src = src;
monitorTransport = new Image;
monitorTransport.onerror = monitorTransport.onload = function(){
monitorTransport = monitorTransport.onerror = monitorTransport.o
nload = null ;
};
// monitorTransport.src = "http://cgi.connect.qq.com/report/report_v
m?monitors=" +"["+monitorId+"]";
};
})(302299);
</script>

  <iframe frameborder="0" width="370" height="322" id="ptlogin_iframe" name=

"ptlogin_iframe" src=""></iframe>

</div>

该网站已有超过1百万用户使用QQ登录

京东商城将获得以下权限:

  • 全选
  •         <li>
              <input name="api_choose" hidefocus="true" type="checkbox" class="c
    

    heckbox oauth_checkbox" id="item_80901010" value="80901010" title="默认授权 不可
    更改" checked disabled />
    获得您的昵称
    、头像、性别及会员信息

          </ul>
        </div>
        <div class="oauth_tips_div">
          <p class="oauth_tips">授权后表明你已同意 <a href="http://connect.qq.co
    

    m/agreement_chs" target="_blank">QQ登录服务协议




<script> _speedTiming.push(+new Date); var Q = {}; Q.authsCount = 1; Q.isNeedLogin = false; Q.crtDomain = 'http://www.jd.com'; Q.agree = function(){ window.isAgreed = true; }; Q.logout = function(){ window.isLogouted = true; }; Q.isNeedLogin = true; Q.getParameter = function getParameter(name) { var r = new RegExp("(\\?|#|&)" + name + "=([^&#]*)(&|#|$)"), m = locatio n.href.match(r); return decodeURIComponent(!m ? "" : m[2]); }; Q.ptlogin2 = function(){ var s_url = 'https://graph.qq.com/oauth/login_jump'; s_url = 'https://xui.ptlogin2.qq.com/cgi-bin/xlogin?appid=716027609&daid =383&style=33&login_text=%E6%8E%88%E6%9D%83%E5%B9%B6%E7%99%BB%E5%BD%95&hide_titl e_bar=1&hide_border=1&target=self&s_url=' + encodeURIComponent(s_url); var clientId = Q.getParameter('client_id') || ''; clientId && (s_url += ("&pt_3rd_aid="+encodeURIComponent(clientId))); var dmHost = ((Q.crtDomain || Q.getParameter('redirect_uri') || '').matc h(/http:\/\/([^/]*)\/?/i) || [])[1] || ''; var feed_back_link = 'http://support.qq.com/write.shtml?fid=780&SSTAG='+ encodeURIComponent(dmHost) + '.appid' + clientId; s_url += ('&pt_feedback_link=' + encodeURIComponent(feed_back_link)); document.getElementById('ptlogin_iframe').src = s_url; }; Q.ptlogin2(); function ptlogin2_onResize(w, h) { var f = document.getElementById('ptlogin_iframe'); f.width = w; f.height = h; } if (!window.JSON) { document.write('<script type="text/javascript" src="https://imgcache.qq. com/open/operate/mlib/widget/json-for-ie.js"><\/script>'); } </script> <script src="https://imgcache.qq.com/c/=/open/connect/widget/pc/login/pt_adapt.j s,qlogin_v2.js?v=20140527" charset="UTF-8"></script> <script> document.write('<script src="https://tajs.qq.com/stats?sId=52725868" charset ="UTF-8"><\/script>'); </script>

2017-04-28 13:38:02,490 root[main] ERROR: # 任务运行出错: Exception('通过 QQ 登
录京东失败.',)
Traceback (most recent call last):
File "main.py", line 22, in main
job.run()
File "E:\JD-Coin-master\app\job\daka.py", line 38, in run
self.login()
File "E:\JD-Coin-master\app\job\daka.py", line 86, in login
self.login_jd(state, g_tk)
File "E:\JD-Coin-master\app\job\daka.py", line 137, in login_jd
raise Exception('通过 QQ 登录京东失败.')
Exception: 通过 QQ 登录京东失败.`

@dawntonight
Copy link

你们这个返回异常,是不是在linux下测试的?
我再windows下测试是正常的,同样的代码在linux,就有同样的问题。
可能是平台差异导致的!有时间可以研究一下!

@reizhi
Copy link
Author

reizhi commented Apr 29, 2017

我这里自动恢复正常了,平台win

@CaoZ
Copy link
Owner

CaoZ commented Apr 29, 2017

可能和 QQ 号有关系, 可能腾讯检测到不是常用登录环境, 需要一些额外的处理 -_-

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants