具体操作:

response = self.session.get(self.cookie_url)

js_code1 = response.text

print(js_code1)

print(response.cookies)

输出

]>

对这段代码进行js反混淆,得到

var x = "toLowerCase@@@@267@@@@window@36@@@@firstChild@div@@catch@@var@rOm9XFMtA3QKV7nYsPGT4lifyWwkq5vcjH2IdxUoCbhERLaz81DNB6@@dpUWKvmM@@substr@@f@53@30@@split@@String@e@location@cookie@g@if@3D@@1@@for@@RegExp@1500@0@@try@pathname@@@@@length@@@@@reverse@1553939630@DOMContentLoaded@@Path@@19@eval@@https@parseInt@chars@innerHTML@charAt@return@2@while@@match@attachEvent@@challenge@@@Sat@@search@10@charCodeAt@createElement@hgCxEv@JgSe0upZ@__jsl_clearance@Array@addEventListener@50@@2FP@setTimeout@a@false@fromCharCode@8@Mar@@0xEDB88320@href@@captcha@replace@function@0xFF@@new@@@d@onreadystatechange@document@@join@@GMT@@toString@Expires@W7@else@@BWEUk".replace(/@*$/, "").split("@"),

y = "j 3=34(){2r('y.30=y.1e+y.2f.33(/[\\?|&]32-2a/,\\'\\')',1a);3c.10='2l=1p.5|1b|'+(34(){j 3=2m(+[[[-~{}+(+!-[])+(+!-[])]*(-~{}+(+!-[])+(+!-[]))]]),1g=['%',[[(+!-[])+(+!-[])]/~~''+[[]][1b]][1b].22(24),'3n%2q',[{}+[]+[]][1b].22(-~~~''-~[-~~~''+(-~~~''<

f = function(x, y) {

var a = 0,

b = 0,

c = 0;

x = x.split("");

y = y || 99;

while ((a = x.shift()) && (b = a.charCodeAt(0) - 77.5)) c = (Math.abs(b) < 13 ? (b + 48.5) : parseInt(a, 36)) + y * c;

return c

},

z = f(y.match(/\w/g).sort(function(x, y) {

return f(x) - f(y)

}).pop());

while (z++) try {

eval(y.replace(/\b\w+\b/g, function(y) {

return x[f(y, z) - 1] || ("_" + y)

}));

break

} catch (_) {}

对js代码进行格式化处理,再调用python的execjs执行这段代码,如下所示:

js_code1 = js_code1.rstrip('\n')

js_code1 = js_code1.replace('', '')

js_code1 = js_code1.replace('

index = js_code1.rfind('}')

js_code1 = js_code1[0:index + 1]

js_code1 = 'function getCookie() {' + js_code1 + '}'

js_code1 = js_code1.replace('eval', 'return')

js_code2 = execjs.compile(js_code1)

code = js_code2.call('getCookie')

print(code)

得到结果为:

var _1l=function(){setTimeout('location.href=location.pathname+location.search.replace(/[\?|&]captcha-challenge/,\'\')',1500);document.cookie='__jsl_clearance=1553940235.414|0|'+(function(){var _1l=Array(+[[-~!{}]+[-~!{}]]),_O=['URpBd',(((+!-[])+[(+!-[])+(+!-[])]>>(+!-[])+(+!-[]))+[[]][0]),'BM',(((+!-[])+[(+!-[])+(+!-[])]>>(+!-[])+(+!-[]))+[[]][0])+[{}+[]+[[]][0]][0].charAt(-~{}),'GQ7RqBB',(!+[]+[]+[[]][0]).charAt(~~'')+[[(+!-[])+(+!-[])]/~~''+[]][0].charAt((-~~~''<<-~~~'')+([(+!-[])+(+!-[])]+~~!{}>>(+!-[])+(+!-[]))),'LMV',({}+[]).charAt([-~!{}]+(~~''+[[]][0])),'BUc%',(!{}+[]+[[]][0]).charAt(-~!{})+[{}+[]+[[]][0]][0].charAt(-~{}),'D'];for(var _7=0;_7<_O.length;_7++){_1l.reverse()[_7]=_O[_7]};return _1l.join('')})()+';Expires=Sat, 30-Mar-19 11:03:55 GMT;Path=/;'};if((function(){try{return !!window.addEventListener;}catch(e){return false;}})()){document.addEventListener('DOMContentLoaded',_1l,false)}else{document.attachEvent('onreadystatechange',_1l)}

同样进行js反混淆,得到

var _1l = function () {

setTimeout('location.href=location.pathname+location.search.replace(/[\?|&]captcha-challenge/,\'\')', 1500);

document.cookie = '__jsl_clearance=1553940235.414|0|' + (function () {

var _1l = Array(+[

[-~!{}] + [-~!{}]

]),

_O = ['URpBd', (((+!-[]) + [(+!-[]) + (+!-[])] >> (+!-[]) + (+!-[])) + [

[]

][0]), 'BM', (((+!-[]) + [(+!-[]) + (+!-[])] >> (+!-[]) + (+!-[])) + [

[]

][0]) + [{} + [] + [

[]

][0]][0].charAt(-~ {}), 'GQ7RqBB', (!+[] + [] + [

[]

][0]).charAt(~~'') + [

[(+!-[]) + (+!-[])] / ~~'' + []

][0].charAt((-~~~'' << -~~~'') + ([(+!-[]) + (+!-[])] + ~~!{} >> (+!-[]) + (+!-[]))), 'LMV', ({} + []).charAt([-~!{}] + (~~'' + [

[]

][0])), 'BUc%', (!{} + [] + [

[]

][0]).charAt(-~!{}) + [{} + [] + [

[]

][0]][0].charAt(-~ {}), 'D'];

for (var _7 = 0; _7 < _O.length; _7++) {

_1l.reverse()[_7] = _O[_7]

};

return _1l.join('')

})() + ';Expires=Sat, 30-Mar-19 11:03:55 GMT;Path=/;'

};

if ((function () {

try {

return !!window.addEventListener;

} catch (e) {

return false;

}

})()) {

document.addEventListener('DOMContentLoaded', _1l, false)

} else {

document.attachEvent('onreadystatechange', _1l)

}

同样对这段js代码格式化,再用python的execjs进行调用,得到结果

code = 'var a' + code.split('document.cookie')[1].split("Path=/;'")[0] + "Path=/;';return a;"

code = 'window = {}; \n' + code

js_final = "function getClearance(){" + code + "};"

ctx = execjs.compile(js_final)

jsl_clearance = ctx.call('getClearance')

jsl_cle = jsl_clearance.split(';')[0].split('=')[1]

print('__jsl_clearance=' + jsl_cle)

得到最终生成的cookie

__jsl_clearance=1553940235.414|0|URpBdaoBMjGQ7RqBBtyLMV3oBUc%3D

与第一次请求得到的cookie 一起发送给服务器,就能返回正常结果。

python爬虫-国家企业_国家企业信用公示系统的爬取相关推荐

  1. Python爬虫项目实操——【3】美空网数据爬取

    1.美空网数据-简介 从今天开始,我们尝试用2篇博客的内容量,搞定一个网站叫做"美空网"网址为:http://www.moko.cc/, 这个网站我分析了一下,我们要爬取的图片在 ...

  2. Python爬虫入门教程【3】:美空网数据爬取

    美空网数据----简介 从今天开始,我们尝试用2篇博客的内容量,搞定一个网站叫做"美空网"网址为:http://www.moko.cc/, 这个网站我分析了一下,我们要爬取的图片在 ...

  3. 【Python爬虫】2022年数学建模美赛B题数据爬取

    2022年数学建模美赛B题数据爬取 背景 2022年的美赛刚刚落下帷幕,该题的一个主要难点在于数据的获取.很多人无法找到有效的数据,或者是无法获取数据. 比如找到了如下米德湖的水文数据,但是发现并没有 ...

  4. Python爬虫从入门到精通:(36)CrawlSpider实现深度爬取_Python涛哥

    我们来看下CrawlSpider实现深度爬取. 爬取阳光热线标题.状态.和详情页内容. https://wz.sun0769.com/political/index/politicsNewest?id ...

  5. python爬虫实战三:近十年中国电影票房数据爬取与分析

    近十年中国电影票房数据爬取与分析 前言 爬取 分析 十年top10 年度top5 每年电影数 每年总票房 二八原则 代码与数据 前言 这篇文章主要讲述的是近十年(2010-2019)中国电影票房数据的 ...

  6. Python爬虫笔记(1)--对新笔趣阁进行爬取

    前期准备: (1) 安装 requests(获取整个网页的HTML信息) 在cmd中,使用如下指令安装requests: pip install requests (2)安装 beautifulsou ...

  7. python爬虫无敌简单案列之堆糖网的图片爬取

    导入模块: import requests import urllib.parse from urllib.request import urlretrieve 输入需要搜索的内容: num = 1 ...

  8. Python爬虫入门教程11:新版王者荣耀皮肤图片的爬取

    前言

  9. 【Python爬虫项目】新发地蔬菜水果等食品价格爬取(详细附源码)

    新发地获取蔬菜水果等食品价格 爬取信息具体如下: 1.食品名称 2.最低价 3.最高价 4.平均价 5.规格 6.产地 7.单位 8.发布日期 1.检查网页源码 通过检查源码可以看出数据并不在网页源码 ...

  10. 【Python爬虫系列教程 21-100】小姐姐是时候带大家爬取表情包,再也不担心你没有表情包发了!

    是这样的 有一次想要斗图 配图 就在网上搜索表情包 然后发现了一个表情巨多的网站 不小心动起了邪念 产生了兴趣 那就 把它们存下来吧 用 requests 请求了一下 发现这个网站没有做反爬 发现这里 ...

最新文章

  1. Ubuntu 14.04下java开发环境的搭建--2--Eclipse的安装
  2. python语法syntaxerror怎么修改-Python 语法错误
  3. 实践重于理论——创建一个监控程序探测WCF的并发处理机制
  4. 计算机转集成光学,集成光学
  5. 20155238 实验四 Android程序设计
  6. Java动态代理生成的对象导出方法
  7. 你愿意隐姓埋名一辈子吗?
  8. Python机器学习:SVM005SVM使用多项式特征
  9. c语言 哪些运算符左右需要空格,C语言运算符优先级口诀?
  10. 高一信息技术 计算机配件的真伪辨别,高一信息技术组PPT.ppt
  11. cocoapods 总结
  12. 浅谈SpringMVC的概念及执行原理
  13. 微软面试题 经典测试 (博弈论 经典案例)
  14. 蓝桥杯python青少年_让孩子参加蓝桥杯大赛好吗
  15. cpu空载50度_让电脑拥有一个“冷静”空间:九州风神玄冰50+堡垒240水冷套
  16. 飞桨《百度构架师手把手教深度学习》结营体验
  17. Affinity propagation 近邻传播算法
  18. SQL高级教程(三十)- - SQL NULL 函数
  19. 曙光“城市大数据平台”冲破数据孤岛、创造数据价值
  20. Leetcode 881:救生艇问题

热门文章

  1. 六款国产杀毒软件资源占用测试,八款杀毒软件横向评测:系统资源占用篇
  2. gin:通过dockerfile部署
  3. 计算机科学技术的广告语,赞美科技的句子-十大经典深入人心科技类广告语
  4. SCI收录的文献类型与认证的文献类型
  5. python拦截广告弹窗_电脑总是有弹窗广告,真的烦人,一招教你解决!
  6. httpclient.execute长时间停滞问题
  7. 【FPGA】Vivado综合停滞、死机(PID Not Specified)解决方法
  8. 面对面快传文件在服务器有痕迹,QQ面对面快传的文件存储在哪
  9. hdu3987(最小割最小边数)
  10. python为图像设置标记_Python OpenCV 图像标记,取经之旅第 12 天