본문 바로가기

프로그래밍&IT/파이썬

[파이썬] 웹 스크래핑.1 - requests

웹 스크래핑을 시작해보자.

  • 웹 스크래핑? 웹 페이지에서 내가 원하는 부분만 추려서 가져오는 것
  • 웹 크롤링? 어떤 페이지에서 링크를 따라가면서 모든 내용을 가져오는 것.

  웹 페이지를 구성하는 3가지  

HTML / CSS / Javs script (JS) => 페이지 : 뼈대 / 꾸미기 / 기능 구현, 실현

HTML (Hyper Text Markup Language)

<HTML>

   <HEAD> ... </HEAD>

</HTML>

 

XPath (XML Path Language)

문서의 구조를 통해 경로(Path)위에 지정된 구문을 사용하여 항목을 배치하고 처리하는 방법을 기술하는 언어

HTML내에서 특정 값의 위치/경로를 표현하는 언어.

 

ex) 크롬 브라우저에서 네이버를 들어간 후, 개발자 도구 (F12)를 연다.

   특정 위치 확인 후 Copy -> Copy XPath를 누르면 해당 위치를 알 수 있는 값을 받게 된다.

   - 해당 XPath 값 - //*[@id="query"]

Requests

파이썬에서 사용하는 웹 페이지 정보 가져오는 라이브러리

파이썬 설치 후, 이 라이브러리가 없을 경우 pip install requests 를 이용해서 다운로드한다

 

[내용 설명]

네이버에서 html 내용을 가져온 후,

응답 코드 확인해서 그 내용을 파일로 만들기

import requests
res = requests.get("http://naver.com")
print("응답 코드 : ", res.status_code) # 200이면 정상, 403: 접근권한이 없다
# 제대로 못 가져올 경우 에러 발생
res.raise_for_status()
print("Keep going.")

# requests.codes.ok : 정상
if res.status_code == requests.codes.ok:
    print("OK")
else:
    print(f"No. Error Code : {res.status_code}")

# 받은 응답 (html)을 파일로 생성하기
with open("ex.html", "w", encoding="utf8") as f:
    f.write(res.text)