본문 바로가기

마우스 매크로

웹크롤링 매크로 - 영어 단어를 입력하면 자동으로 해석해주는 매크로 만들기

반응형

안녕하세요. 엔지엠소프트웨어입니다. 이전 시간에 [ 네이버 연관 검색어를 가져오는 방법 ]에 대해 알아보았습니다. 오늘은 사용자가 영어 단어를 입력하면 한국어로 번역해주는 매크로를 만들어 보도록 하겠습니다. 하드코딩으로 영어 단어를 모두 입력해두고, 일치되는 한국어 내용을 보여주는게 아니라 네이버 영어사전의 API를 이용해서 웹으로부터 번역된 내용을 받아오도록 하겠습니다. 우선, 어떻게 동작하는지 분석해야 할 필요가 있는데요. [ 네이버 영어사전 ]으로 이동한 후 검색창에 단어를 입력 해볼께요. 엔지엠 매크로의 이니셜을 입력 해봤습니다. (new generation master)

 

 

그러면, 자동 완성 기능으로 입력한 영어 단어의 해석과 추가적인 내용을 보여줍니다. 크롬 브라우저의 개발자 도구(F12)를 실행하고, 마지막 요청(Request)에 대해 헤더(Header) 정보를 살펴 봅시다. Request URL을 복사한 후 분석해봐야겠죠?

 

 

주소를 보면 원본은 불필요한 정보들도 같이 포함되어 있습니다. 아래 가공한 주소처럼 ac 파라메터와 q 파라메터만 있으면 정상적으로 Json 포멧의 응답(Response)을 받을 수 있습니다.

# 원본 주소
https://ac-dict.naver.com/enko/ac?st=11&r_lt=11&q=new generation&_callback=jQuery35105906328150909586_1656567151431&_=1656567151454

# 가공한 주소
https://ac-dict.naver.com/enko/ac?st=11&q=new%20generation
 

 

이전 글에 첨부되어 있는 스크립트를 에디터로 열고, API 주소를 "https://ac-dict.naver.com/enko/ac?st=11&q={검색어}"와 같이 입력해주세요. 그리고, 스크립트를 실행해보세요.

 

 

Xml Json 시각화 도구를 보면, 응답에 대한 구조를 알 수 있습니다. 영어 단어 번역의 Json 모델 구조는 이전 글의 연관 검색어보다 약간 더 복잡합니다.

 

 

영어 단어와 번역이 나누어져 있습니다. 배열이 1개가 아닌 3개인데요. 이중에서 두번째는 내용이 없는 빈 배열입니다. 그래서, 배열을 2개 처리하도록 구성해야 할거 같습니다. [ 변수 ]를 하나 더 추가하고, 기존의 배열 변수 아이디를 배열1로 변경하세요. 추가한 배열은 배열2로 하면 될거 같습니다.

 

 

여기서 중요한 부분이 나옵니다. 기존에는 하나의 배열만 처리하면 되었기 때문에 [ Foreach 반복 ]을 사용해서 순차적으로 아이템을 빼와서 처리하도록 했습니다. 그런데 이번에는 배열이 2개이므로 하나는 Foreach 반복으로 처리하더라도 번역된 한글은 배열의 인덱스로 가져와야 합니다. 그래서, Foreach 반복 액션의 변수 처리를 아래와 같이 인덱스도 추가해야 합니다.

원본 글 보기

http://ngmsoftware.com/bbs/board.php?bo_table=tip_and_tech&wr_id=720 

 

엔지엠소프트웨어

엔지엠 매크로는 복잡한 반복작업을 자동화할 수 있습니다. PC 게임, 모바일 게임을 최적으로 지원하며 모든 PC 프로그램 및 업무에 적용할 수 있습니다.

www.ngmsoftware.com

 

반응형