关于JS逆向学习的Python爬虫技术

2023-11-11 0 980

关于JS逆向学习的Python爬虫技术

正文:

1. Node.js 是一个提供浏览器环境的平台,可以在非浏览器环境中运行JavaScript代码。它支持在第三方安装的基础上运行 JavaScript 文件。

2. 在 Python中,有一些基础的语法可以用来读取文件。例如:

“`python
with open(文件路径, 操作类型(r), encoding=’utf-8′) as f:
data = f.read()
“`

3. pyexecjs 库的作用是连接 Python 和 JavaScript 代码,使得 JavaScript 代码可以被 Python 代码调用和运行。可以通过以下方式安装和导入 pyexecjs 库:

安装方法:`pip install pyexecjs`
导入方法:`import execjs`(没有 py 前缀)

具体使用方法是,首先通过上述的文件读取方式获取到 JavaScript 文件的内容,将其赋值给变量data。然后使用以下语法对其进行编译:

“`python
execjs.compile(data)
“`

此时,原来的 data 已经被编译,不再是字符串类型。需要注意的是,原始的 JavaScript 文件中不要包含调用文件内函数的代码,否则可能会导致系统报错。可以使用以下语法来调用编译后的 JavaScript 代码中的函数:

“`python
execjs.compile(data).call(“函数名”, 参数 1, 参数 2…)
“`

以下是一个代码实例:

“`python
import execjs

with open(文件路径, 操作类型(r), encoding=’utf-8′) as f:
data = f.read()

compiled_js = execjs.compile(data)
result = compiled_js.call(“函数名”, 参数 1, 参数 2…)

代码实例:

 demo.js:
function my(x){
return “hello,world”+x
}
test.py:
import execjs
with open(/.demo.js,”r”,encoding=’utf-8′) as f:
data=f.read()
d=execjs.complie(data).call(“my”,”thanks”)
print(d)  

test.py 代码运行结果应为:
hello,world thanks
下面是一些关于中文输出问题:
在具体调用时,输出部分中文可能报错,这是由于编码问题
解决方法:
1- 进入 subprocess 库的源代码
2- 搜索 encoding 662 行处将 encoding=None 的 None 改为’UTF-8′

本文章已结束,如转载请注明:汇站网 » 关于 JS 逆向学习的 Python 爬虫技术

收藏 (0)

微信支付 微信扫一扫

支付宝支付 支付宝扫一扫

打赏二维码
点赞 (0)

站长资源下载中心-找源码上汇站

常见问题
  • 如果付款后没有弹出下载页面,多刷新几下,有问题联系客服!
查看详情
  • 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。
查看详情

相关文章

联系官方客服

为您解决烦忧 - 24小时在线 专业服务