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()