카테고리 없음

스파르타 AI-8기 TIL(12/31)-TeamProject

kimjunki-8 2024. 12. 31. 22:40
BeautifulSoup
BeautifulSoup는 HTML 또는 XML 문서를 파싱(구문 분석)하여, 웹 페이지에서 원하는 데이터를 쉽게 추출할 수 있도록 도와주는 Python 라이브러리입니다.
from bs4 import BeautifulSoup

# recipe_response.text는 해당 레시피 페이지의 HTML 텍스트입니다.
recipe_soup = BeautifulSoup(recipe_response.text, 'html.parser')

# HTML 요소를 추출
recipe_name = recipe_soup.find('h1', class_='recipe-title').text
print(recipe_name)

BeautifulSoup의 역할
입력: BeautifulSoup은 HTML 또는 XML 문서를 받아들입니다. 여기서는 recipe_response.text라는 HTML 문서를 입력으로 받습니다.

recipe_response.text는 requests.get()을 통해 가져온 HTML 콘텐츠입니다. 이 HTML 콘텐츠는 웹 페이지의 구조를 나타내는 문자열입니다.
처리: BeautifulSoup은 이 HTML 문자열을 내부적으로 파싱하여 DOM(Document Object Model) 트리 구조로 변환합니다. 이 DOM 트리는 HTML 요소들(div, p, a, h1 등)을 계층적으로 나열하고, 각 요소에 접근할 수 있도록 해줍니다.

출력: 파싱된 HTML을 검색 및 탐색할 수 있게 만들어줍니다. 이 객체를 이용해 원하는 데이터를 쉽게 추출할 수 있습니다.

MIME 타입
MIME 타입은 인터넷에서 파일이나 데이터가 어떤 종류인지를 정의하는 표준입니다. MIME은 Multipurpose Internet Mail Extensions의 약자로, 원래 이메일에서 다양한 형식의 데이터를 전송할 수 있게 하기 위해 만들어졌지만, 지금은 웹에서 파일의 종류나 형식을 식별하는 데 널리 사용됩니다.
MIME 타입은 두 부분으로 나뉘어 있습니다:
주요 타입 (Primary type): 데이터의 큰 카테고리를 나타냅니다.
서브타입 (Subtype): 주요 타입 안에서 구체적인 형식을 나타냅니다.

예시:
text/html: text는 텍스트 형식을, html은 HTML 웹 페이지를 나타냅니다.
image/png: image는 이미지 형식을, png는 PNG 이미지 형식을 나타냅니다.
application/json: application은 애플리케이션 관련 데이터를 나타내고, json은 JSON 데이터 형식을 의미합니다.

이렇게 MIME 타입은 웹에서 파일을 주고받을 때, 그 파일이 무엇인지 설명해주는 역할을 합니다. 웹 서버는 MIME 타입을 사용하여 브라우저나 다른 프로그램에게 "이 파일은 이미지입니다.", "이것은 HTML 웹 페이지입니다."와 같은 정보를 알려줍니다.

예시
웹 페이지: 웹 서버가 HTML 파일을 보내면, MIME 타입은 text/html이 됩니다. 이 타입은 웹 브라우저에게 "이 파일은 웹 페이지 형식입니다."라고 알려줍니다.
이미지: 서버가 PNG 이미지를 보낼 때, MIME 타입은 image/png입니다. 이는 브라우저에게 "이건 이미지입니다."라고 말하는 것입니다.
JSON 데이터: 서버가 JSON 데이터를 보내면, MIME 타입은 application/json이 됩니다. 이는 "이건 JSON 데이터입니다."라고 나타냅니다.

application/ld+json 예시에서
application: 애플리케이션 데이터를 위한 주요 타입.
ld+json: JSON-LD 형식을 나타내며, "링크드 데이터"(구조화된 데이터)를 표현하는 데 사용됩니다.


request.get?
Django의 get은 데이터를 url로 전달한다면, 여기서는 get은 웹 서버에서 특정 페이지나 리소스의 콘텐츠를 가져오는 데 사용되는 HTTP 메서드입니다.
웹 페이지 콘텐츠를 가져오기:
특정 웹 페이지의 HTML 코드, JSON 데이터, 또는 다른 리소스를 요청하여 서버로부터 콘텐츠를 받아오는 것이 주된 용도입니다. 예를 들어, 레시피 웹사이트에서 레시피 데이터를 가져오거나 API에서 데이터를 받는 경우입니다.

서버에서 리소스를 요청하고 응답을 받기:
requests.get()을 사용하면 서버에 GET 요청을 보내고, 서버는 해당 URL에 해당하는 리소스를 응답으로 반환합니다.
이 응답은 HTML(웹 페이지), JSON(API 응답), 이미지 파일, 또는 텍스트 파일 등 다양한 형태일 수 있습니다.

참고로 response.text에는 서버가 응답으로 보낸 HTML 페이지의 내용이 포함됩니다. 이 HTML 코드 안에 웹 페이지의 제목, 텍스트, 이미지, 링크 등의 정보가 들어 있습니다.

Selenium