目录
1. js2py基本介绍
2. selenium与phantomjs
- 爬虫与反爬虫间的斗争
- 动态HTML技术
- 动态数据获取-selenium与phantomjs
课堂笔记
1. js2py基本介绍
1.1 js2py简介
- js2py是纯Python实现的库,用于在python文件中运行js代码,实质是将js转换成python代码
- 基本用法:
import js2py
js2py.eval_js('console.log("hello world!")')
fun_js = '''
function add(a, b){
return a+b
}
'''
res = js2py.eval_js(fun_js)
print(res(4, 5))
print(js2py.translate_js('console.log("hello world!")'))
js2py.translate_file('test.js', 'trans.py')
ctx = js2py.EvalJs({
'python_sum': sum})
print(ctx.python_sum)
js_code = '''
python_sum([1, 2, 3])
'''
print('js_code =', ctx.eval(js_code))
- js代码中引用Python模块(
pyimport 模块名
)
js_code = """
pyimport requests // 这里使用pyimport引入Python模块
console.log('导⼊成功');
var response = requests.get('http://www.baidu.com');
console.log(response.url);
console.log(response.content);
"""
js2py.eval_js(js_code)
1.2 js2py破解百度翻译sign
function n(r,o){
for(var t=0;t<o.length-2;t+=3){
var a=o.charAt(t+2);a=a>="a"?a.charCodeAt(0)-87:Number(a),
a="+"===o.charAt(t+1)?r>>>a:r<<a,
r="+"===o.charAt(t)?r+a&4294967295:r^a
}
return r
}
function e(r){
var i = "320305.131321201";
var o=r.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g);
if(null===o){
var t=r.length;
t>30&&(r=""+r.substr(0,10)+r.substr(Math.floor(t/2)-5,10)+r.substr(-10,10))
}else{
for(var e=r.split(/[\uD800-\uDBFF][\uDC00-\uDFFF]/),