본문 바로가기
Web/Crawling

[Web] 웹 크롤링,웹 스크래핑 Basic - 1 . requests 라이브러리

by skwkiix 2023. 8. 6.
728x90

웹 스크래핑(Web Scraping) 이란?

웹 스크래핑(Web scraping)은 웹 페이지로부터 데이터를 추출하고 수집하는 과정을 말한다.
이를 위해 프로그램을 사용하여 웹 사이트의 HTML 코드를 분석하고 원하는 정보를 추출하는 작업을 수행합니다. 
데이터 수집, 정보 추출, 경쟁 분석, 텍스트 마이닝 등이 수행된다.
웹 스크래핑은 웹 사이트의 이용 약관과 로봇 배제 표준(Robots Exclusion Standard)을 준수하는 한에서 수행되어야 한다.. 일부 웹 사이트는 웹 스크래핑을 금지하거나 제한하는 경우가 있으므로 주의해야 한다.

 

Python의 requests 라이브러리와 Beautiful Soup, Scrapy 등의 도구를 사용하여 웹 스크래핑 작업을 수행한다.

웹 스크래핑 Basic - 1 에서는  requests 라이브러리를 사용해서, 웹 페이지 데이터를 추출하는 방법을 알아볼 것이다.


1.  requests

웹페이지를 요청하고 응답을 처리하는 모듈 (html 가져오는 라이브러리)

 

1) html 가져오기

import requests
res = requests.get("http://google.com/")

 requests 모듈을 입포트 한 후, get 함수를 이용하여 html 을 가져올 사이트 주소를 입력한다.


2) 결과 확인

응답코드가 200이면 정상

  • if 문 사용
# 응답코드 확인
print("응답코드:", res.status_code)
​
# 응답코드 확인하는 if문
if res.status_code == requests.codes.ok:
    print('정상입니다.')
 else:
     print("문제가 생겼습니다.[에러코드 : ",res.status_code, "]")
​
 res.raise_for_status()
 print("웹 스크래핑을 진행합니다.")

res 의 status_code 가 requests codes.ok 와 같으면 정상 (응답코드가 200이면 정상)이다.

다르면, 에러코드를 출력한다.

 

응답코드 출력 : 에러코드 200 (정상 출력)

 

  • raise_for_status()
res.raise_for_status()
print("응답코드:", res.status_code)

  복잡한 if 문 없이 한 줄로 처리가 가능한 함수이다. 응답코드가 200이 아닌 경우,  에러를 출력한다.

 

 


3) html 파일 가져오기

  • res.text  : 응답의 html 내용 가져오는 함수
print(len(res.text)) # html 텍스트 길이 출력
print(res.text) # html 텍스트 출력

 

  • 파일 생성 후, 응답 내용 저장
with open("mygoogle.html","w",encoding="utf8") as f:
    f.write(res.text)

'mygoogle.html' 파일을 생성한 후, 쓰기 모드로 열어서 응답의 HTML 내용을 저장한다.


4) 브라우저로 열기

 

  • [확장] 탭에서 Live server 설치하기 (open in browser 도 가능하다 )

  • 우클릭 > 브라우저로 열기
    • Live server > Open with Live server 클릭
    • Open in browser > Open In Default Browser , Open In Other Browsers 클릭

 

  • 확인

실행창

Live Server, Open In Browser 이 잘 설치되었다면,  html text 가 브라우저로 실행되는 것을 볼 수 있다.

728x90