실습을 위한 웹크롤링 - 1. 준비단계

행동하는 개발자·2022년 7월 14일
0

웹크롤링

컴퓨터 소프트웨어 기술로 웹 사이트들에서 원하는 정보를 추출하는 것을 의미한다. 웹크롤러란 인터넷에 있는 웹페이지를 방문해서 자료를 수집하는 일을 하는 프로그램이다. 멜론 사이트에서 현재 음악 차트 순위 자료가 필요하다면, 사이트에 가서 엑셀에 값을 넣고 정리해서 보고하는 사람이 있는 반면, 이 데이터를 다른 프로그램이나 무언가를 만들기 위해 데이터베이스 형태로 저장해 놓는 사람이 있을 것이다.

웹은 기본적으로 HTML 형태로 되어 있다. HTML 형태로 어떻게 보여지는 지 페이지 소스 보기 또는 개발자 검사로 볼 수 있다. 개발자들은 이를 어떤 정형화된 패턴으로 관리하기 때문에 이런 패턴을 분석해서 우리가 원하는 정보들만 뽑아오는 것을 웹 크롤링 작업이라고 한다.

준비단계

vscode extention에서 open in browser을 검색해 다운받는다.

또는 live preview라는 것을 다운받고 실시간으로 만들어지는 것을 학인가능하다.

meta charset="uft-8" 작업하다가 깨진다면 head 부분에 다음을 추가한다.

일반적인 로그인 페이지를 만들기 위해

  1. 아이디 입력 부분
  2. 패스워드 입력 부분
  3. 로그인 버튼
  4. 다른 웹사이트 하이퍼링크를 다음가 같이 만들 수 있다.

html 더 공부하기

w3schools에 들어가서 html 만드는 것을 시험해볼 수 있다.

requests

모듈 requests를 다운로드 받고,

실행해준다.

print(res.status_code) 가 200이 출력되면 정상.
print(requests.status.ok) 로 오류를 확인할 수 있음

re

파이썬에서는 정규표현 처리를 하기 위해 표준 라이브러리인 re 모듈을 사용할 수 있다. 문자열의 추출이나 치환 분할 등이 가능하다

ex)
1. compile
re.compile("ca.e") : 하나의 문자를 의미한다.
re.compile("^de") : 문자열의 시작을 의미한다.
re.compile("se$") : 문자열의 끝을 의미한다.

  1. match
    m = p.match("case") : 다음과 같은 식으로 매칭되지 않은지 확인할 수 있다.
    print(m.group()) : 일치하는 문자열 반환
    print(m.string()) : 입력받은 문자열 반환

  2. search
    m = p.search("case") : 주어진 문자열 중에 일치하는 것이 있는 지 확인

  3. findall : 일치하는 모든 것을 리스트 형태로 반환

user agent란?

사용자 에이전트는 사용자를 대표하는 컴퓨터 프로그램으로, 웹 맥락에선 브라우저를 의미한다. 브라우저 외에도 웹페이지를 긁어가는 봇, 다운로드 관리자, 웹에 접근하는 다른 앱도 사용자 에이전트이다.

user agent string을 검색하면 다음과 같은 사이트가 뜨는데, 나의 user agent를 확인할 수 있다.

다음과 같은 방법으로 나의 벨로그의 html을 웹 크롤링 할 수 있다.

다음은 크롤링된 html이다.

profile
끊임없이 뭔가를 남기는 사람

0개의 댓글