본문 바로가기

Project/springfield 대본 다운로드

[Springfield 대본 다운로드] 1. 개요 & 대본 하나 다운받기

반응형

1. 개요

영어 스피킹을 공부하는 방법 중 하나로 쉐도잉이라는 것이 있다. 좋아하는 영화나 미드를 따라하며 스피킹 연습을 하는 것으로 꽤 보편적인 공부법으로 알려져있으며, 효율적인 쉐도잉 방법 또한 많은 유튜브나 블로그 등에서 소개되고 있다.  

 

영어 공부를 할 겸 이런 저런 방법론을 찾아보던 중, 영어 대본이 필요하다는 것을 알게 되었고 스크립트를 제공하는 사이트를 발견하게 되었다. Springfield라는 곳으로 영화나 TV Show에 대한 대본을 제공한다. 

 

제목을 통해 검색하면 해당하는 모든 에피소드가 나오고, 에피소드 하나를 클릭하면 스크립트를 볼 수 있다.

 

 

스크립트를 다운받기 위해 모든 글을 "선택 -> 복사 -> 원하는 파일로 붙여넣기" 작업을 하면 된다. 

하나의 에피소드만 다운로드하는 것은 할 만 하겠지만, 모든 시즌의 모든 에피소드를 다운로드 하기 위해서는 그 수 만큼의 클릭과 복붙이 필요할 것이다. 이러한 귀찮음을 해결하기 위해 (사실 영어 공부하기 싫어서.. 개발은 재미라도 있으니까..) 모든 에피소드를 다운 받는 프로그램을 만들어 보려고 한다!  

 

 

2. Python으로 대본 하나 다운받기

하나의 에피소드를 다운 받는 것은 굳이 프로그램을 돌릴 필요가 없지만, 잘 돌아가는지 확인하기 위한 테스트라고 생각하면 될 듯하다. 

  • springfield 사이트에 들어가 다운 받고 싶은 스크립트가 있는 페이지로 이동한다. (ex. Emily in Paris s1 ep1)
  • 해당 페이지의 url을 복사하고 코드에 넣는다.
  • 다운로드 하기 원하는 파일 확장자를 line 19에 작성한다. (ex. docx)
  • 파일 실행하면 잘 동작하는 것을 확인할 수 있다.

 

코드

from bs4 import BeautifulSoup
import requests

url = "https://www.springfieldspringfield.co.uk/view_episode_scripts.php?tv-show=emily-in-paris-2020&episode=s01e01"

soup = BeautifulSoup(requests.get(url).text, 'html5lib')

title = soup.select_one('h1').get_text()
script = soup.select_one('.scrolling-script-container').get_text().strip()

# script 정제
s = ""
for alph in script:
    if alph != '\n':
        s = s + alph

new_script = ' '.join(s.split()).replace(" - ", "").split('.') #다중 공백 & "-" 제거 후 리스트로 변환

with open(f'{title}.docx', 'w', encoding='utf-8') as file:
    file.write(f'{title}\n\n')
    for sentence in new_script:
        file.write(f'{sentence.strip()}.\n')

 

결과

굳!

 

반응형