티스토리 뷰

5. 파이썬

데이터 수집 프로그램

패스트코드블로그 2021. 5. 7. 10:42

파이썬 기반 공공데이터 API 분석모델 구축

2. 데이터 수집 프로그램

 

 

 

  • Beautiful Soup
    • Beautiful Soup 정의
    • Beautiful Soup 설정하기
    • 벅스뮤직 예제
    • 위키피디아 예제
  • 셀레니움과 크롬드라이버
    • 셀레니움과 크롬드라이버 설정하기
    • 네이버 영화 예제
    • 네이버 자동 로그인 예제
  • 텍스트 마이닝
    • 데이터 다운로드
    • 삼성 2018 산업보고서 예제

 

Beautiful Soup

 

Beautiful Soup 정의

 

    Beautiful Soup은 HTML과 XML 문서를 구문 분석하기 위한 파이썬 패키지입니다. HTML에서 데이터를 추출하는 데 사용할 수 있는 구문 분석된 페이지에 대한 구문 분석 트리를 만듭니다. 이것은 웹 스크래핑에 유용합니다.[위키백과]

 

Beautiful Soup 설정하기

 

    pypi.org/project/로 접속합니다.

Beautiful Soup을 검색한다.beautifulsoup4 <버전> 을 선택합니다.

이 예제에서는 PIP 로 패키지를 설치하는 학습이 필요합니다.

패키지는 특정 기능을 수행하기 위한 함수들을 모아놓은 라이브러리(모듈)입니다.

PIP란 패키지 소프트웨어를 설치, 관리하는 시스템입니다. 

추가하는 패키지는 다음과 같습니다.

pip install beautifulsoup4
pip install lxml

을 카피해서 <그림 1> 처럼 파이참 터미널에 붙여넣습니다.

 

벅스뮤직 예제

 

스크래핑할 주소는 ('https://music.bugs.co.kr/chart/track/realtime/total?chartdate=20181124&charthour=10music.bugs.co.kr/chart/track/day/total?chartdate=20210505') 입니다.

 

 

 

위키피디아 예제

 

스크래핑할 주소는 (http://dh.aks.ac.kr/Encyves/wiki/index.php/%EC%A1%B0%EC%84%A0_%EC%84%B8%EC%A2%85 ) 입니다.  스크랩핑하는 모듈을 작성합니다.

이 예제에서는 다음과 같은 선행 지식이 필요합니다. 이 문법을 CSS 셀렉터라고 합니다.(각주1)

  • a.get('href') 태그 a 에서 href 속성의 값(하이퍼링크 url) 추출하기
  • soup.title.name title 태그의 이름 title 추출하기
  • soup.title.string title 태그의 문자값 추출하기
  • soup.['class'] 클래스 추출
  • soup.find(id = 'link') 아이디가 link 인 태그와 값 추출

 

 

(각주1) 출처 (www.w3schools.com/cssref/css_selectors.asp

 

 

셀레니움과 크롬 드라이버

 

셀레니움 설정하기

 

    추가하는 패키지는 다음과 같습니다. pip install selenium

conda install webdriver_manager : webdriver_manager 는 크롬 브라우저 버전이 업데이트 되면, 그에 맞는 크롬 드라이버를 자동으로 다운로드 해주는 라이브러리입니다.

 

크롬드라이버 설정하기

 

    크롬 브라우저 우측 상단에 세로 점3개을 클릭 후 설정탭을 선택합니다. 좌측 Chrome 정보를 클릭합니다. <그림2>와 같이 크롬 버전을 확인합니다. chromedriver.chromium.org/downloads  에 접속합니다.

버전과 일치하는 드라이버를 <그림3> 처럼 선택한 후 본인 OS 와 맞춰서 다운받습니다.

다운받은 드라이버를 C:/Program Files/Google/Chrome 에 저장합니다.

해당 프로젝트의 경로를 카피해서, 작업 중인 모듈에 입력합니다.

 

 

 

다음 영화 예제(https://movie.daum.net/main)

 

    이 예제에서는 requests 라이브러리를 사용합니다.

파이썬용 HTTP 라이브러리 입니다. HTTP, HTTPS 웹 사이트에 요청하기 위해 자주 사용하는 라이브러리이며, 크롤링 과정에서 웹의 소스코드를 가져와 파싱하는 경우에 주로 사용하게 됩니다. 

 

 

그리고 html parser 에 대한 지식이 필요합니다.

 

[참고사이트]( docs.python.org/ko/3/library/html.parser.html)

그리고, List Comprehension을 사용한 for 문에 대한 내용은 다음과 같습니다.

a = [1,2,3,4]

result = [ i * 3 for i in a if i % 2 == 0 ]

print(result)

[6, 12]

 

네이버 자동 로그인

 

텍스트 마이닝

 

    텍스트 마이닝은 비정형 텍스트에서 패턴, 관계 등을 분석하여 의미있는 정보를 도출해내는 데이터 마이닝  기법입니다.[참고사이트](itwiki.kr/w/%ED%85%8D%EC%8A%A4%ED%8A%B8_%EB%A7%88%EC%9D%B4%EB%8B%9D

 

삼성 2018 산업보고서 텍스트 마이닝

 

이 예제에서는 로컬에 데이터를 다운로드 해야 합니다.

data.zip
2.10MB

    이 폴더에는 워드클라우드를 위한 폰트와 텍스트 마이닝 대상 파일, 제거할 노이즈 단어목록 파일을 포함하고 있습니다.

추가할 패키지는 KoNLPy 이다. 해당 패키지에 대한 홈페이지는 (konlpy.org/ko/v0.5.2/install/#) 입니다. 

KoNLPy는 한국어 정보 전처리에 사용되는 파이썬 패키지다. 자연어처리(NLP)에서 형태소를 분리(형태소 단위 토크나이징)하는 데이터 전처리작업에서 많이 사용됩니다. KoNLPy 사이트는 설정하는 과정이 많이 생략되어 있어 이 블로그( https://ebbnflow.tistory.com/143)를 참조하는 것이 유용합니다.

추가로 NLTK (www.nltk.org/data.html) 에 관한 지식이 필요합니다. NLTK는 자연어 처리를 위한 파이썬 패키지입니다. 설정하는 과정은 이 블로그 (wikidocs.net/22488) 를 통해 참조하는 것이 유용합니다.

 

 

<참고자료>

 

<그림1> Run 탭이 아니고 Terminal 탭을 선택해야 한다.
<그림2>
<그림3>

 

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함