반응형
웹 페이지를 크롤링하면 다양한 정보를 활용해 분석을 수행할 수 있다.
웹 페이지를 크롤링하는 방법에는 여러가지가 있으며, 주로 크롬의 개발자도구를 활용한다.
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 :
2.6 사이트 정보 추출하기 - beautifulsoup 사용법 (1)
# BeautifulSoup가 필요한 이유 request.text를 이용해 가져온 데이터는 텍스트형태의 html 입니다. 텍스트형태의 데이터에서 어떻게 원하는 html ...
wikidocs.net
반응형
'Skills > Python' 카테고리의 다른 글
[Python] 크롤링이 잘되었는지 확인하는 법 & 차단 방지하는 법 (0) | 2021.11.08 |
---|---|
[Python] selenium 패키지 사용을 위한 chromedriver 설치 및 오류해결(Mac OS) (0) | 2021.11.08 |
[Python] 시각화 패키지 (0) | 2021.11.05 |
[Python] 파이썬에서 sql데이터 불러오기 (0) | 2021.11.04 |
[Python] 결측치 다루기 (기초) (0) | 2021.11.04 |