- 전체
- Python 일반
- Python 수학
- Python 그래픽
- Python 자료구조
- Python 인공지능
- Python 인터넷
- Python SAGE
- wxPython
- TkInter
- iPython
- wxPython
- pyQT
- Jython
- django
- flask
- blender python scripting
- python for minecraft
- Python 데이터 분석
- Python RPA
- cython
- PyCharm
- pySide
- kivy (python)
Python 자료구조 Python, PyV8로 javascript 실행하기
2018.08.14 00:31
Python, PyV8로 javascript 실행하기
파이썬에서 웹크롤링을 하다보면 자바스크립트로 데이터를 가져올때가 종종있다
PyV8은 구글에서 개발한 자바스크립트 엔진, V8을 파이썬에서 실행할수 있도록 한 라이브러리이다.
자바스크립트를 실행하고 결과를 Python으로 전달한다.
https://code.google.com/archive/p/pyv8/downloads

pip를 통해서도 설치할 수 있다.
-. 간단 사용 방법
import PyV8 ctxt = PyV8.JSContext() #PyV8 사용 준비 ctxt.enter() ctxt.eval('var i = 1 + 2;') print ctxt.eval('i;')
>>> 3
-. locals
PyV8은 자바스크립트를 실행하면서 생성된 모든 변수를 locals 클래스에 보관을 하고 있다.
import PyV8 ctxt = PyV8.JSContext() #PyV8 사용 준비 ctxt.enter() ctxt.eval('var x = 1;') ctxt.eval('var y = 2;') ctxt.eval('var z = x + y;') print ctxt.locals.keys()
>>> ['x', 'y', 'z']
-. 사용 예
# -*- encoding:utf8 -*- # Python version in the development environment 2.7.11 import os,sys,time os.chdir(os.path.dirname(__file__)) import PyV8 # 테스트에 사용할 javascript 함수 js = ''' function Hello() { document.write("hello, Python!!!") }''' class MockDocument(object): #Python에는 없는 document 객체를 처리하기 위해 Mock object를 생성 def __init__(self): self.value = '' def write(self,*args): #document.write 처리용 method self.value += ''.join(str(t) for t in args) class Global(PyV8.JSClass): #PyV8 문맥에서 javascript와 함께 사용이 가능한 Global 클래스 선언 def __init__(self): self.document = MockDocument() # document 객체 처리 scope = Global() ctxt = PyV8.JSContext(scope) ctxt.enter() ctxt.eval(js) #javascript 실행 ctxt.eval('Hello();') print scope.document.value
>>> hello, Python!!!
위 처럼 PyV8을 이용하면 Python으로도 javascript를 실행할수가 있다.
참조사이트
http://blog.naver.com/powerhw/220262351769
http://stackoverflow.com/questions/10136319/executing-javascript-from-python
http://www.hanul93.com/kicomav-pyv8/
https://pypi.python.org/pypi/PyV8
[출처] http://blog.naver.com/PostView.nhn?blogId=dudwo567890&logNo=220895234080&parentCategoryNo=&categoryNo=39&viewDate=&isShowPopularPosts=false&from=section
본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
댓글 0
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
|---|---|---|---|---|
| 8 |
[python, 그래픽] [파이썬 활용] 마우스 자동화 (pyautogui)
| 졸리운_곰 | 2022.11.26 | 437 |
| 7 |
[python, 그래픽] 파이썬 자동화 툴 - pyautogui 사용하기
| 졸리운_곰 | 2022.11.26 | 568 |
| 6 |
[python][image processing][파이썬][이미지프로세싱] 파이썬 영상 처리 (OpenCV)
| 졸리운_곰 | 2021.11.12 | 629 |
| 5 |
[Python, GUI tool] GUI drag & drop style GUI Builder for Python Tkinter
| 졸리운_곰 | 2021.05.17 | 613 |
| 4 |
[python 파이썬 2d 그래픽스] The Interesting Python Graphics Libraries for Python Programmers
| 졸리운_곰 | 2021.04.27 | 1227 |
| 3 | 파이선 텍스트 게임 샘플 Code for my First Text-Based Game | 졸리운_곰 | 2018.09.01 | 745 |
| 2 |
python Collada dae file Reading : 파이썬으로 콜라다 dae 파일 분석
| 졸리운_곰 | 2017.08.01 | 1064 |
| 1 |
matplotlib으로 하트 그리기
| 졸리운_곰 | 2017.03.04 | 2278 |

