【逆向爬虫】Python中执行调用JS的多种方法汇总_python 执行js
在Python中执行JavaScript代码可以使用多种方法,以下是几种常见的方法:
- 使用
execjs
库:
import execjs
# 编译JavaScript的运行环境
context = execjs.compile('''
function say_hello(name) {
return "Hello, " + name + "!";
}
''')
# 调用JavaScript函数
result = context.call('say_hello', 'World')
print(result) # 输出: Hello, World!
- 使用Node.js内置的
vm
模块:
import subprocess
js_code = 'console.log("Hello, World!");'
subprocess.run(['node', '-e', f'console.log("Hello, World!");'])
- 使用PyV8库(需要预先安装):
import PyV8
def exec_js(js_code):
with PyV8.JSContext() as context:
context.eval(js_code)
exec_js('console.log("Hello, World!");')
- 使用
selenium
结合浏览器驱动来执行JavaScript:
from selenium import webdriver
driver = webdriver.Chrome()
driver.execute_script('console.log("Hello, World!");')
driver.quit()
- 使用
requests
结合html
模板来执行JavaScript(例如在浏览器环境中):
import requests
from html import unescape
js_code = 'console.log("Hello, World!");'
response = requests.get(f'data:text/html,<script>{unescape(js_code)}</script>')
选择合适的方法取决于具体需求和环境配置。以上方法可以执行JavaScript代码,但请注意,某些方法可能需要额外的配置或依赖项,如Node.js、PyV8或WebDriver。
评论已关闭