Python и Java. Совмещение

Вопрос в том, что я хочу писать веб-сервер на Django, и туда нужно встроить парсер на Java, после которого нужно обрабатывать полученные данные на Python. Как скрестить все это? Подойдет ли Jython?


Ответы (1 шт):

Автор решения: Александр

pip install jpype1 -U

import jpype
import jpype.imports
from jpype.types import *


def start_JVM():
    if jpype.isJVMStarted():
        return
    else:
        jpype.startJVM()
start_JVM()

from java.lang import System

def main():
    System.out.println("Hello Java!"); # --> Hello Java!

if __name__ == '__main__':
    main()

Пример посложнее:

import jpype
import jpype.imports
from jpype.types import *


def start_JVM():
    jpype.isJVMStarted():
        return
    else:
        jpype.startJVM()
start_JVM()

from java.awt import Dimension
from javax.swing import JFrame
from javax.swing import JLabel


class TestAWT:
    def __init__(self):
        frame = JFrame("Test AWT")
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

        label = JLabel("Hello from Java!")

        frame.getContentPane().add(label)
        frame.setPreferredSize(Dimension(250, 100))

        frame.pack()
        frame.setVisible(True)

def main():
    TestAWT()

if __name__ == '__main__':
    main()

Я не пойму а зачем писать парсер на Java ;-)

import os
import jpype
import jpype.imports
from jpype.types import *


def start_JVM():
    if jpype.isJVMStarted():
        print('JVM запущена ранее...')
        return
    else:
        print('Запуск JVM')
        jpype.startJVM(jpype.getDefaultJVMPath(), "-ea", "- 
    Djava.class.path=jsoup-1.13.1.jar")

def main():
    start_JVM()

    JSoup = jpype.JPackage("org").jsoup.Jsoup

    document = JSoup.connect("https://yandex.ru/")
    document.userAgent("Chrome/4.0.249.0 Safari/532.5")
    document.referrer("http://www.google.com")
    print(document.get())


if __name__ == '__main__':
    main()

Документация JPype

→ Ссылка