본문 바로가기

프로그래밍/Python

[파이썬 크롤링] #4. 정규표현식 데이터 추출

반응형

2021/01/02 - [프로그래밍/Python] - [파이썬 크롤링] #3. urllib으로 웹 페이지 추출

 

[파이썬 크롤링] #3. urllib으로 웹 페이지 추출

2021/01/02 - [프로그래밍/Python] - [파이썬 크롤링] #1. 크롤링이란 무엇일까요? 2021/01/02 - [프로그래밍/Python] - [파이썬 크롤링] #2. 개발 환경 설치와 파이썬 기초 3번째 urllib을 알아보기 이전에 HTML..

kgu0724.tistory.com

 

앞서 우리가 가져온 HTML 파일을 정규 표현식으로 데이터를 추출해 보도록 하겠습니다.

 

정규 표현식?

 

우선 정규식이란 것은 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 언어 인데요.

정규 표현식을 이를 프로그래밍언어로써 활용할 떄 사용하는 말입니다.

 

즉, 일정한 패턴의 문자열을 쉽게 검색해서 사용하기 위한 용도라 보시면 될 것 같습니다.

 

그럼 정규 표현식에 대해서 간략히 알아 보면 좋을텐데요

 

정규 표현식에서 사용하는 메타 문자들은 다음과 같은 것들이 있습니다.

. ^ $ * + ? { } [ ] \ | ( )

 

이 메타 문자는 우리가 알고 있는 문자가 아닌 특별한 의미를 갖는 문자 인데요.

우리가 특정한 문자 패턴이라고 하는 것들은 위에 있는 메타 문자들을 활용하면

거의 모든 문자의 패턴 표현이 가능합니다.

 

각각 한번 살펴 보면

  • 문자 클래스 [ ] 
    - [a-zA-Z] : 알파벳 모두
    - [0-9] : 숫자 모두
    단, [^0-9] 과 같이 ^의 표시는 반대(not)이라는 의미 입니다.

    이러한 방법대로 자주 사용하는 문자 클래스가 있는데요.

    1) \d - 숫자와 매치 [0-9]
    2) \D - 숫자 아닌 것과 매치 [^0-9]
    3) \s - 공백 문자와 매치 [ \t\n\r\f\v] 와 동일한 표현식. 맨 앞의 빈 칸은 공백을 의미
    4) \S - 위의 공백 문자 매치와 반대 [^ \t\n...]
    5) \w - 문자+숫자와 매치 [a-zA-Z0-9_]
    6) \W - 위의 반대 [^a-zA-Z0-9_]
  • Dot ( . )
    - .는 모든 문자를 의미합니다. (단 \n은 제외입니다.)
    - a.b의 정규 표현식의 의미는 "a + 모든문자 + b" 입니다.
  • 반복 ( * )
    - *은 반복을 의미하는 표시이고 메타 문자 앞에 있는 문자의 개수에는 상관없이 무한대로 반복 될때 사용합니다.
  • 반복 ( + )
    - 1개 이상의 문자가 사용 될 떄 사용되어 집니다.
  • 반복 ( {m,n}, ? )
    - {m개 또는 m~n개} 사이의 값들이 반복되어 질 때 사용 되는 것입니다.
    - ? 는 0 또는 1일때 사용 하는 것 입니다.

 

 

반응형