Jaemin
72
2020-02-04 11:25:31
11
1762

Jython 질문합니다~~ 정말 간단해 보이는데.. 왜..


제가 Spring boot에 웹크롤링한 것을 응용하기 위해 java파일 따로 만들어서 테스트 해봤는데 

bs4모듈이 없다하더라구요 그래서 밑에 처럼 bs4 경로 설정해줬는데 계속 문법 오류가 나오네요 

어떻게 하면 Jython 사용할 수 있을까요? 물론 Jython installer는 다운 받고 built path에 등록해놨습니다.

어떻게하면 가능할까요?

		interpreter.exec("import sys.path.append('C:\\Users\\com4in\\AppData\\Local\\Programs\\Python\\Python38-32\\Lib\\site-packages\\bs4')");
package test;

import org.python.core.PyObject;
import org.python.util.PythonInterpreter;

public class test {
	public static void main(String[] args) {
		PythonInterpreter interpreter = new PythonInterpreter();
		interpreter.exec("import sys.path.append('C:\\Users\\com4in\\AppData\\Local\\Programs\\Python\\Python38-32\\Lib\\site-packages\\bs4')");
		interpreter.exec("from bs4 import BeautifulSoup");
		interpreter.exec("import urllib.request as urlopen");
		interpreter.exec("import re");
		interpreter.execfile("C:\\crolling.py");
		PyObject result = interpreter.get("cleaned_text");
		System.out.println("result : " + result);
	}
}


0
  • 답변 11

  • Jaemin
    72
    2020-02-04 11:26:10
    도움 부탁드립니다 실시간 모니터링으로 바로 피드백 받습니다
  • pppak
    503
    2020-02-04 11:28:23

    오류내용대로 파이썬에 bs4모듈 설치 되어있는지 확인해 보셨나요?

  • Jaemin
    72
    2020-02-04 11:34:22

    bs4 설치 되어있습니다~

  • 니르바나
    2k
    2020-02-04 11:46:33

    설치 했는데 안된다는건,

    에디터에서 python 가상환경 쓰시면 가상환경 설정이 잘못된거 아닐까 싶네요.


    에디터 쪽이랑 아래 쪽이랑 같은 환경의 python 쓰는지 보실래요?

  • Jaemin
    72
    2020-02-04 11:54:58

    @보보8 

    같은 경로의 python 쓰고있습니다. 

    제가 봤을땐 밑에 코드가 잘못된거같은데 혹시 수정해야 할까요??

    오류내용 : 

    console: Failed to install '': java.nio.charset.UnsupportedCharsetException: cp0.

    Exception in thread "main" SyntaxError: ("mismatched input '(' expecting NEWLINE", ('<string>', 1, 22, "import sys.path.append('C:\\Users\\com4in\\AppData\\Local\\Programs\\Python\\Python38-32\\Lib\\site-packages\\bs4')\n"))


    interpreter.exec("import sys.path.append('C:\\Users\\com4in\\AppData\\Local\\Programs\\Python\\Python38-32\\Lib\\site-packages\\bs4')");
  • 니르바나
    2k
    2020-02-04 12:15:16

    괄호 쪽이 뭐가 문제 있는듯한데요..

    아마 저 문자열이 들어가서 실행하는데 잘못 들어가있는것 같습니다.

    해당 에러로 구글링하면 append 뒷쪽 문자들 수정하시다보면 될듯하네요.

  • Jaemin
    72
    2020-02-05 10:55:47
    하루종일 붙잡고 해봤는데 잘안되네요ㅜㅜ 그래서 Jsoup사용해서 진행해보려고합니다~ 감사합니다
  • 니르바나
    2k
    2020-02-05 11:36:10

    에고 슬프네요~


    마지막으로 이거 체크 한번해보시고 안되시면 Jsoup 쓰시는게 나을듯하네요.

    https://stackoverflow.com/questions/42589053/adding-arguments-in-jython-pythoninterpreter-to-the-execfile-function

    https://www.programcreek.com/java-api-examples/?class=org.python.util.PythonInterpreter&method=initialize

    python 패스를 명시적으로 정해줘야 하는듯한데요.

    패스 설정이 안되서 신텍스 에러가 나는건가 싶기도 합니다.

    확인해보시길..


    제 앞에 코드가 있으면 실행해보면서 디버깅할텐데 시뮬레이션에 한계가 있어서 답변에도 한계까 있네요.

    그럼 좋은 결과 있으시길 바랍니다.


  • Jaemin
    72
    2020-02-05 14:51:28

    @보보8
    바쁘신 와중에  도움 주셔서 감사합니다 좋은 하루 되세요

  • 니르바나
    2k
    2020-02-05 15:13:39

    혹시 해결되시면 같은 문제를 겪으실 다른 분들을 위해서 답글 남겨주시면 감사해요.

  • Jaemin
    72
    2020-02-05 15:25:24

    네~ 알겠씁니다~


  • 로그인을 하시면 답변을 등록할 수 있습니다.