파이썬에서의 자바스크립트 프로그래밍 - 파이썬COM을 사용한 해결방법

1,084 views
Skip to first unread message

jin shizhen

unread,
Feb 18, 2012, 9:35:37 PM2/18/12
to Python 3 질문 게시판
안녕하세요, 해당 질문을 제출한 학생입니다.

오늘 우연히 제가 전에 제출했던 질문을 보고(그동안 잊고 있었뜸) 방문하였는데 지금까지 질문답변이 없어서 제가 해결한 방법을 게
시해드리려고 합니다.

윈도우시스템에서 파이썬코드에 기타 언어로 작성한 코드를 실행하려고 하시는 분들께 도움이 되셨으면 합니다.~~

아직까지 저는 오직 파이썬만으로 브라우저의 document객체모델에 접근할 수 있는 방법은 찾지 못하였습니다.(없는 것 같뜸
~~)

그러나 아래의 방법으로는 해결 가능합니다.
1, 자바스크립트를 사용하여 브라우저의 document객체모델에 접근하고 목적 기능을 구현합니다.
이 코드는 하나의 객체로 사용하기 때문에 반드시 해당 기능을 API로 외부에 노출시켜 파라미터로 입력을, 리턴값으로 출력을 담

합니다. 저는 'parse'함수를 작성하였습니다.
2, 해당 자바스크립트 파일을 txt파일에 저장하고 파일명을 지정합니다.
3, 아래의 주소에서 Python for Windows extensions을 다운하여 설치합니다.
Mark Hammond 지음. Python for Windows extensions.
http://sourceforge.net/projects/pywin32/files/pywin32/.
4, 파이썬코드에서 win32com.client을 import한다.
5, win32com.client모델을 사용하여 COM객체를 생성하여 파이썬에서 자바스크립트코드를 하나의 객체로 인식하여 실행

니다.

def readJsFile():
fp = open(jsparserpath, 'r')
lines = ""
for line in fp:
lines += line
return lines

js=win32com.client.Dispatch('MSScriptControl.ScriptControl') #
Microsoft Script Control자동화객체를 생성합니다.
js.Language='JavaScript' # 언어를 자바스크립트로 지정합니다.
js.AllowUI=False # The AllowUI property applies to user-interface
elements displayed by the ScriptControl itself or user-interface
elements displayed by the scripting engines.
jsparsercode = readJsFile() # txt파일에서 자바스크립트코드를 읽어옵니다.
js.AddCode(jsparsercode) # ScriptControl에 자바스크립트코드를 추가합니다.
parse_result=js.Run('parse',code) # 파라미터 'parse'는 제가 자바스크립트코드에서 작성한
API이고, 파라미터 code는 'parse'함수의 입력파라미터입니다. 마지막으로 'parse'함수의 반환값은
parse_result변수에 저장합니다.

끝~~

감사합니다.
좋은 하루 되세요~


On 2011년9월5일, 오후9시58분, jin shizhen <jins...@gmail.com> wrote:
> 안녕하세요, 파이썬3 프로그래밍을 공부하고있는 학생입니다.
> 이해하기 쉽게 좋은 책을 써주셔서 감사드립니다.
>
> 파이썬에 관하여 질문이 하나 있습니다.
> 브라우저에서 웹 페이지에 있는 자바스크립트는 document.location속성을 사용하여
> document객체에 접근할수 있는데,
> 파이썬에서는 브라우저의 document객체에 접근할수 있는지 문의하렵니다.
> 회답 부탁드리겠습니다.
> 감사드립니다.

Reply all
Reply to author
Forward
0 new messages