Hướng dẫn how to call javascript function in python - cách gọi hàm javascript trong python

Tôi đang làm việc trong một dự án xẹp web. Một trong những trang web tôi đang làm việc có dữ liệu đến từ JavaScript.

Có một gợi ý về một trong những câu hỏi trước đây của tôi mà tôi có thể gọi trực tiếp JavaScript từ Python, nhưng tôi không chắc làm thế nào để thực hiện điều này.

Ví dụ: Nếu hàm JavaScript được xác định là:

add2 = js.callable('add2')
val = add2(var1, var2)
0

Làm thế nào tôi có thể gọi đó là chức năng JavaScript từ Python?

Hướng dẫn how to call javascript function in python - cách gọi hàm javascript trong python

Stevoisiak

21.4K25 Huy hiệu vàng118 Huy hiệu bạc208 Huy hiệu đồng25 gold badges118 silver badges208 bronze badges

Đã hỏi ngày 27 tháng 11 năm 2011 lúc 10:02Nov 27, 2011 at 10:02

Hướng dẫn how to call javascript function in python - cách gọi hàm javascript trong python

1

Tìm một thông dịch viên JavaScript có ràng buộc Python. (Hãy thử Rhino? V8? Seamonkey?). Khi bạn đã tìm thấy một, nó sẽ đi kèm với các ví dụ về cách sử dụng nó từ Python.

Tuy nhiên, bản thân Python không bao gồm một thông dịch viên JavaScript.

Đã trả lời ngày 27 tháng 11 năm 2011 lúc 10:31Nov 27, 2011 at 10:31

Hướng dẫn how to call javascript function in python - cách gọi hàm javascript trong python

2

Một giải pháp thay thế thú vị mà tôi phát hiện gần đây là mô -đun trái phiếu Python, có thể được sử dụng để giao tiếp với quy trình NodeJS (động cơ V8).

Việc sử dụng sẽ rất giống với các ràng buộc PYV8, nhưng bạn có thể trực tiếp sử dụng bất kỳ thư viện NodeJS nào mà không cần sửa đổi, đây là một điểm bán hàng chính cho tôi.

Mã Python của bạn sẽ trông như thế này:

val = js.call('add2', var1, var2)

hoặc thậm chí:

add2 = js.callable('add2')
val = add2(var1, var2)

Các chức năng gọi mặc dù chắc chắn chậm hơn PYV8, vì vậy nó phụ thuộc rất nhiều vào nhu cầu của bạn. Nếu bạn cần sử dụng gói

add2 = js.callable('add2')
val = add2(var1, var2)
1 có nhiều thứ nặng,
add2 = js.callable('add2')
val = add2(var1, var2)
2 là tuyệt vời. Bạn thậm chí có thể có nhiều quy trình NodeJS chạy song song.

Nhưng nếu bạn chỉ cần gọi một loạt các hàm JS (ví dụ, để có cùng một chức năng xác thực giữa trình duyệt/phụ trợ),

add2 = js.callable('add2')
val = add2(var1, var2)
3 chắc chắn sẽ nhanh hơn rất nhiều.

Đã trả lời ngày 13 tháng 9 năm 2014 lúc 16:07Sep 13, 2014 at 16:07

Cuối cùng, bạn có thể nhận JavaScript từ trang và thực hiện nó thông qua một số trình thông dịch (chẳng hạn như V8 hoặc Rhino). Tuy nhiên, bạn có thể nhận được kết quả tốt theo cách dễ dàng hơn bằng cách sử dụng một số công cụ kiểm tra chức năng, chẳng hạn như selen hoặc splinter. Các giải pháp này khởi chạy trình duyệt và tải trang hiệu quả - nó có thể chậm nhưng đảm bảo rằng nội dung hiển thị trình duyệt dự kiến ​​sẽ có sẵn.

Ví dụ, hãy xem xét tài liệu HTML bên dưới:


    
        Test
        
    
    
        

The element below will receive content

Kịch bản dưới đây sẽ sử dụng splinter. Splinter sẽ khởi chạy Firefox và sau khi tải hoàn chỉnh của trang, nó sẽ nhận được nội dung được thêm vào Div bởi JavaScript:

from splinter.browser import Browser
import os.path

browser = Browser()
browser.visit('file://' + os.path.realpath('test.html'))
elements = browser.find_by_css("#mydiv")
div = elements[0]
print div.value

browser.quit()

Kết quả sẽ là nội dung được in trong stdout.

Hướng dẫn how to call javascript function in python - cách gọi hàm javascript trong python

c24b

4.9515 Huy hiệu vàng26 Huy hiệu bạc35 Huy hiệu Đồng5 gold badges26 silver badges35 bronze badges

Đã trả lời ngày 3 tháng 12 năm 2011 lúc 3:38Dec 3, 2011 at 3:38

Brandizzibrandizzibrandizzi

25.4K7 Huy hiệu vàng100 Huy hiệu bạc151 Huy hiệu đồng7 gold badges100 silver badges151 bronze badges

1

Bạn có thể gọi nút thông qua popen.

Ví dụ của tôi làm thế nào để làm điều đó

print execute('''function (args) {
    var result = 0;
    args.map(function (i) {
        result += i;
    });
    return result;
}''', args=[[1, 2, 3, 4, 5]])

Đã trả lời ngày 29 tháng 9 năm 2015 lúc 21:32Sep 29, 2015 at 21:32

Hướng dẫn how to call javascript function in python - cách gọi hàm javascript trong python

Muỗimosquito

1521 Huy hiệu bạc7 Huy hiệu đồng1 silver badge7 bronze badges

1

Xin chào, một giải pháp khả thi sẽ là sử dụng Ajax với bình để kết hợp giữa JavaScript và Python. Bạn sẽ chạy một máy chủ bằng bình và sau đó mở trang web trong trình duyệt. Bằng cách này, bạn có thể chạy các chức năng JavaScript khi trang web được tạo thông qua Pythoncode hoặc bằng một nút làm thế nào nó được thực hiện trong ví dụ này.

Mã HTML:











 


Mã Python:

from flask import Flask, jsonify, render_template, request

app = Flask(__name__)


def load_file(file_name):
    data = None
    with open(file_name, 'r') as file:
        data = file.read()
    return data

@app.route('/pycall')
def pycall():
    content = request.args.get('content', 0, type=str)
    
    print("call_received",content)
    return jsonify(result="data from python")

@app.route('/')
def index():
    return load_file("basic.html")



import webbrowser
print("opening localhost")
url = "http://127.0.0.1:5000/"
webbrowser.open(url)
app.run()

đầu ra trong Python:

add2 = js.callable('add2')
val = add2(var1, var2)
4

cảnh báo trong trình duyệt:

add2 = js.callable('add2')
val = add2(var1, var2)
5

Đã trả lời ngày 22 tháng 7 năm 2021 lúc 11:23Jul 22, 2021 at 11:23

Điều này đã làm việc cho tôi cho tệp JS đơn giản, Nguồn: https://www.geeksforgeek.org/how-to-run-javascript-from-python/

pip install js2py
pip install temp

add2 = js.callable('add2')
val = add2(var1, var2)
6

import js2py
eval_res, tempfile = js2py.run_file("scripts/dev/test.js")
tempfile.wish("GeeksforGeeks")

add2 = js.callable('add2')
val = add2(var1, var2)
7

function wish(name) {
    console.log("Hello, " + name + "!")
}

Đã trả lời ngày 3 tháng 2 lúc 2:25Feb 3 at 2:25

Hướng dẫn how to call javascript function in python - cách gọi hàm javascript trong python

Đã làm toàn bộ các phương pháp khác nhau gần đây.

Pyqt4 node.js/zombie.js Phantomjs

Phantomjs là người chiến thắng, rất đơn giản với nhiều ví dụ.

Đã trả lời ngày 18 tháng 4 năm 2015 lúc 8:30Apr 18, 2015 at 8:30

fragefragefrage

6817 Huy hiệu bạc15 Huy hiệu Đồng7 silver badges15 bronze badges

1

Tôi có thể gọi chức năng JavaScript trong Python không?

Gọi JavaScript từ Python, chìa khóa là nhập mô -đun JS và gọi các hàm JavaScript bằng không gian tên JS.Đây là một ví dụ hoàn chỉnh mà bạn có thể sao chép và dán vào tệp cục bộ và tải vào trình duyệt.Tôi thích bắt đầu một máy chủ web Python đơn giản để chạy các ví dụ: python -m http.Máy chủ 9000.import the module js and call JavaScript functions using the js namespace. This is a complete example that you can copy and paste into a local file and load into the browser. I prefer to start a simple Python webserver to run examples: python -m http. server 9000 .

Làm thế nào để bạn gọi một tệp JavaScript từ Python?

Để chạy chức năng JavaScript từ Python, hãy tạo một hàm và gán nó vào một biến. Sau đó gọi hàm đó bằng phương thức eval_js ().create a function and assign it into a variable. Then invoke that function using the eval_js() method.

Tôi có thể sử dụng JavaScript và Python cùng nhau không?

Bạn có thể kết hợp JavaScript và Python mà không cần sử dụng cơ sở dữ liệu hoặc phát triển cấu trúc API cồng kềnh để cải thiện hiệu quả phát triển..

Chức năng JavaScript trong Python là gì?

Một hàm là một khối mã chỉ chạy khi nó được gọi.Bạn có thể truyền dữ liệu, được gọi là tham số, thành một hàm.Một chức năng có thể trả về dữ liệu như là kết quả.a block of code which only runs when it is called. You can pass data, known as parameters, into a function. A function can return data as a result.