python爬虫之js2py介绍使用

1 js2py模块简介

在平时爬虫过程中,我们会遇到网站对js文件加密,无法爬取,现在就让我们来了解一下js2py模块,它可以对js文件进行解密

2 js2py使用

2.1 js2py安装

Python中执行JS代码,通常两个库:js2py,pyexecjs,通常使用的是js2py

  • js2py是纯python实现的库,用于在python中运行js代码,本质上是将js代码翻译成python代码
  • js2py安装 pip install js2py

2.2 js2py模块快速使用

import js2py
# print('hello world')
js2py.eval_js('console.log("hello world")')
# func_js 为add()函数
func_js = """
function add(a,b){
    return a+b
}
"""
add = js2py.eval_js(func_js)  # 实现print('hello world)和 add()函数
print(add(1, 2)) # 'hello world'  3

print(js2py.eval_js('var a = "python";a'))
add = js2py.eval_js('function add(a,b){return a + b}')
print(add(2,3))  # python 5


2 js代码翻译

# 翻译js文件为py文件
print(js2py.translate_js("console.log('hello world')"))
js2py.translate_file('test.js', 'test.py')

在这里插入图片描述
在这里插入图片描述

3 js代码中使用函数和模块

import js2py # 导入了一个模块
# 执行了一个python代码
print('sum:',sum([1,2,3]))  # sum: 6
context = js2py.EvalJs({'python_sum': sum})
print(context)  # <js2py.evaljs.EvalJs object at 0x0000015D3B2380C8>  <js2py.evaljs.EvalJs 对象
js_code = '''
python_sum([1,2,3])
'''
# 执行了一个js代码
print('js_code:',context.eval(js_code))


# 在js代码中导入Python模块并使用
# # 使用pyimport语法
js_code = """
pyimport requests
console.log('导入成功'); 
var response = requests.get('http://www.baidu.com');
console.log(response.url);
console.log(response.content);
"""
js2py.eval_js(js_code)

4 破解js文件

  • 1.js转python,就是将js翻译为python。

  • 2.利用selenium+phantomjs模拟人工操作。

  • 3.利用pyexecjs直接执行js文件

三种方法参考的是:[python爬虫]处理js文件的三个方法
大家可以点击,共同学习~

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值