python3爬虫如何使用pyExecJS解析js代码

网络爬虫难免会遇到JS加密,当遇到比较难搞得JS加密时, 很多小伙伴会选择使用selenium+Chrome,
但是selenium有时候未必是万能的, 特别是浏览器在headless会出现一些不好解决的BUG,最关键的是效率!
如果selenium 无法解决但是又必须获取这些数据, 破解JS势在必行 execjs是python很好的一个执行js的工具

下面看看基本的用法

环境

pyExecJs
Node.js

安装

pip install pyExecJs
apt-get install nodejs # ubuntu

使用

下面是使用execjs解析银监会的第一层解析

import execjs
import requests
import re


url = 'http://www.cbrc.gov.cn/zhuanti/xzcf/get2and3LevelXZCFDocListDividePage//1.html'
resp_body = requests.get(url).text
get_js = re.findall(r'<script>(.*?)</script>', resp_body)[0]

print(get_js)
get_js = re.sub(r'eval\(','return(', get_js)
resHtml = "function getClearance(){" + get_js + "};"
ctx = execjs.compile(resHtml)
temp = ctx.call('getClearance')
print(temp)

两次print的结果有比较大的差异

如果对银监会数据感兴趣可以留言交流

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值