qq_41270528 2018-09-13 05:32 采纳率: 0%
浏览 4384

关于国家企业信用信息公示网的抓取?

现在在研究爬虫,但是因为技术有限所以磕磕碰碰,在抓取信用公示网的时候,遇到很多问题,大部分在网上搜索相关解决方法和自己摸索都解决了。目前这个网站主要是用了一种叫做加速乐的技术,也就是当访问时系统会返回521,但是获取参数会有jsluid参数,把这个参数加入cookie之后再次访问,会返回jsl_clearance参数,然后再利用参数进行访问才可以。目前jsluid已经拿到,但是返回的js没有搞明白,已经卡了一天了。请各位大神帮忙看看。

 var _16=function(){setTimeout('location.href=location.pathname+location.search.replace(/[\?|&]captcha-challenge/,\'\')',1500);document.cookie='__jsl_clearance=1536808582.071|0|'+(function(){var _56=[function(_16){return _16},function(_56){return _56},function(_16){return return('String.fromCharCode('+_16+')')}],_41=[((-~~~!!window['callP'+'hantom']<<-~[]-~-~!!window['callP'+'hantom'])+[]+[[]][0]),(-~{}+(-~~~!!window['callP'+'hantom']<<-~[]-~-~!!window['callP'+'hantom'])+[]+[]),(-~!!window['callP'+'hantom']+[])+(~~''+[]+[]),(-~!!window['callP'+'hantom']+[])+((-~[]+[-~-~!!window['callP'+'hantom']]>>-~-~!!window['callP'+'hantom'])+[]),((-~[]+[-~-~!!window['callP'+'hantom']]>>-~-~!!window['callP'+'hantom'])+[]),[-~[]-~-~!!window['callP'+'hantom']-~[]-~-~!!window['callP'+'hantom']],[(+!window.headless)+(+!window.headless)],(-~!!window['callP'+'hantom']+[])+(-~!!window['callP'+'hantom']+[]),((+!window.headless)+(+!window.headless)+(+!window.headless)+(+!window.headless)+[]+[]),(7+[]+[[]][0]),(-~!!window['callP'+'hantom']+[]),(-~!!window['callP'+'hantom']+[])+[(+!window.headless)+(+!window.headless)],(~~''+[]+[]),[-~(((+!window.headless)<<(+!window.headless)+(+!window.headless)))]];for(var _16=0;_16<_41.length;_16++){_41[_16]=_56[[0,2,1,0,1,2,1,2,0,1,2,1,2,1][_16]]([[(7+[]+[[]][0])+(~~''+[]+[]),((-~~~!!window['callP'+'hantom']<<-~[]-~-~!!window['callP'+'hantom'])+[]+[[]][0])+(7+[]+[[]][0])],[((-~[]+[-~-~!!window['callP'+'hantom']]>>-~-~!!window['callP'+'hantom'])+[])+(7+[]+[[]][0])],'99lV','%2B2a',((-~[]+[-~-~!!window['callP'+'hantom']]>>-~-~!!window['callP'+'hantom'])+[]),'k%3D',[(-~!!window['callP'+'hantom']+[])+(-~!!window['callP'+'hantom']+[])+((-~[]+[-~-~!!window['callP'+'hantom']]>>-~-~!!window['callP'+'hantom'])+[]),(-~!!window['callP'+'hantom']+[])+(~~''+[]+[])+(7+[]+[[]][0])],'zS',[window['callP'+'hantom']%~~''+[]+[]][0].charAt(~~!!window['callP'+'hantom']),[[-~[]-~-~!!window['callP'+'hantom']-~[]-~-~!!window['callP'+'hantom']]+[-~[]-~-~!!window['callP'+'hantom']-~[]-~-~!!window['callP'+'hantom']]],'LyEwh35%2F',[[-~[]-~-~!!window['callP'+'hantom']-~[]-~-~!!window['callP'+'hantom']]+[-~[]-~-~!!window['callP'+'hantom']-~[]-~-~!!window['callP'+'hantom']]],'2',({}+[[]][0]).charAt(-~!!window['callP'+'hantom'])][_41[_16]])};return _41.join('')})()+';Expires=Thu, 13-Sep-18 04:16:22 GMT;Path=/;'};if((function(){try{return !!window.addEventListener;}catch(e){return false;}})()){document.addEventListener('DOMContentLoaded',_16,false)}else{document.attachEvent('onreadystatechange',_16)}

这里的jslclearance是 1536808582.071|0| 后面上一部分,但是这部分的代码没有搞懂,希望大家帮忙看看。

谢谢~~~~

  • 写回答

1条回答 默认 最新

  • weixin_38596075 2018-09-14 06:01
    关注

    document.cookie 到;Expires=Thu, 13-Sep-18 04:16:22 GMT;Path=/;这里是整个cookie的生成过程,
    Matcher matcher = Pattern.compile("__jsl_clearance.+?Expires").matcher(js1);
    if (matcher.find()) {
    String js2 = ("function getKey(aa) { var cookie='" + matcher.group().replace("document.cookie", ""))
    .replace("Expires", "").replace("';", ");return cookie + getHalf();}")
    .replace(")()+", "")
    .replaceAll("document\.createElement.+?firstChild\.href", "'" + requestBase.getURI().toString() + "'")
    .replace("+(function()", ";function getHalf()").replace("});", "};")
    .replaceAll("window", "'Chrome'").replace("'Chrome' ", "'Chrome'");
    cookie1 = JavaScript.getKey(js2);
    }
    尝试将拆成两个js,将无法执行的window替换成chrome就ok了

    评论

报告相同问题?

悬赏问题

  • ¥15 mmocr的训练错误,结果全为0
  • ¥15 python的qt5界面
  • ¥15 无线电能传输系统MATLAB仿真问题
  • ¥50 如何用脚本实现输入法的热键设置
  • ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
  • ¥30 深度学习,前后端连接
  • ¥15 孟德尔随机化结果不一致
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀