본문으로 바로가기

[Python] 웹 페이지 크롤링 기초

category Skills/Python 2021. 11. 8. 13:22
반응형

웹 페이지를 크롤링하면 다양한 정보를 활용해 분석을 수행할 수 있다.

 

웹 페이지를 크롤링하는 방법에는 여러가지가 있으며, 주로 크롬의 개발자도구를 활용한다.

 

1. 정적 페이지 크롤링

import requests # 크롤링에 사용하는 패키지
from bs4 import BeautifulSoup # html 변환에 사용

url = '원하는 주소' # 원하는 url 주소 입력
resp = requests.get(url) # requsts로 url에 정보요청
html = BeautifulSoup(resp.text, 'html.parser') # 정보를 html 변환 (보기 쉽게)
html.select('태그.클래스 or 태그#id > 태그.클래스') # html 내에서 원하는 태그 선별 & 하위 선별

 

2. 동적 페이지 크롤링

# 동적페이지의 숨은 URL
# 동적페이지에 요청을 할 때 웹 정책에 필요한 정보를 같이 전달을 해줘야한다.
# requests 요청시에 헤더정보 추가
url = 'Network의 동적 url'

# 동적페이지에 함께 요청하는 정보
info = {
    'referer': 'Network의 request header', # 내가 있는 페이지
    'user-agent': 'Network의 request header' # referer는 없어도 된다.(but, 권장)
}

resp = requests.get(url, headers=info)

html = BeautifulSoup(resp.text, 'html.parser')

html.select('태그')

for문, .strip(), .replace(), zip 등을 활용하여 원하는 문구를 추출한다.

 

 

3. json파일 크롤링

import json

url = 'Network의 동적 url'
info = {
    'referer': 'Network의 request header', # 내가 있는 페이지
    'user-agent': 'Network의 request header' # referer는 없어도 된다.(but, 권장)
}

resp = requests.get(url, headers=info)
data = json.loads(resp.text)

html로 변환할 필요없이 json파일을 한번에 받아와 데이터프레임을 생성하기 쉽다.

 

 

 

Reference :

- https://wikidocs.net/85739

 

2.6 사이트 정보 추출하기 - beautifulsoup 사용법 (1)

# BeautifulSoup가 필요한 이유 request.text를 이용해 가져온 데이터는 텍스트형태의 html 입니다. 텍스트형태의 데이터에서 어떻게 원하는 html ...

wikidocs.net

 

반응형