본문 바로가기

BLOG/웹크롤링

[웹크롤링] 크롤링한 데이터 메모장(텍스트 파일)에 저장하는 방법

크롤링한 데이터를 메모장과 같은 텍스트 파일에 저장하려면 sys library를 이용하면 되는데요,

sys library에서 표준 출력 방향을 모니터가 아닌 다른 변수로 지정해주는 기능을 제공합니다.

즉, 모니터에 출력되는 것이 아니라 텍스트 파일에 저장해주고, 이를 다시 되돌려주기 위해 sys library를 사용하는 것입니다.

 

따라서 텍스트를 저장하기 전 다음과 같이 코드를 입력해 주어야 합니다.

 

import sys

orig_stdout = sys.stdout
f = open(f_name, 'a', encoding='UTF-8')   #f_name = 파일경로+파일이름.txt로 설정 필요
sys.stdout = f 

 

두 번째 코드는 표준 출력 방향을 모니터가 아닌 다른 변수로 지정한다는 코드고,

세 번째 코드에서 f_name은 파일 경로 + 파일이름.txt 가 담긴 코드를 말합니다. f_name에 대해서는 각자 저장할 폴더 경로에 맞게 지정을 해주어야 합니다.

마지막 코드는 표준 출력방향을 위에서 만든 파일로 지정한다는 의미를 담고 있습니다.

 

이렇게 위에까지 잘 입력했다면, 이제 텍스트를 저장해야 하는데요, 만약 test_list 라는 리스트에 크롤링된 데이터가 저장되었다면 다음과 같이 코드를 작성하면 됩니다.

 

for i in test_list :
    print(i)
    print("\n")

 

위 코드를 작성하면 해당 데이터가 화면에 출력되지 않고 텍스트 파일에 출력된답니다.

 

여기까지 실행을 잘했다면, 마지막으로 출력방향을 모니터로 다시 되돌려야 하는데요,

아래와 같이 코드를 작성하면 됩니다.

 

sys.stdout = orig_stdout  
f.close

 

마지막에 메모장 파일도 함께 닫아주었습니다.

 

 

코드를 종합해보자면 다음과 같습니다.

 

import sys
orig_stdout = sys.stdout 
f_name = r"C:\test\text_sample1.txt"
f = open(f_name, 'a', encoding='UTF-8')
sys.stdout = f 

for i in test_list :
    print(i)
    print("\n")

sys.stdout = orig_stdout   #출력방향 다시 되돌림
f.close