[파이썬] beautifulsoup4 3장

0

3장에 들어가기에 앞서...
HTTP Method에 대해 설명하고자 함.

HTTP : HTML과 같은 문서 리소스를 가져오게 해주는 프로토콜임.
-> 클라이언트가 HTTP를 통해 서버에 요청을 보낼 때 HTTP Method라는 것이 포함되어 있음.

HTTP Method : 클라이언트가 웹 서버에 사용자 요청 목적, 종류를 알리는 수단

-> 초기에는 get method 밖에 없었으나 점차 늘어나 현재는 다양한 메서드 존재.

HTTP Method 종류

1. 주요 메서드

  1. GET : 리소스 조회
  2. POST : 요청 데이터 처리, 주로 데이터 등록에 사용
  3. PUT : 리소스를 대체, 해당 리소스가 없으면 생성
  4. PATCH : 리소스를 일부만 변경
  5. DELETE : 리소스 삭제

<GET, POST 차이>

  1. GET : 누구나 볼 수 있게 url에 담아서 보냄, 제한이 있어서 큰 데이터는 보낼 수 없음
  2. POST : HTTP url Body에 숨겨서 보냄(보안데이터), 제한이 없어서 큰 데이터를 보내는 것이 가능함.

2. 기타 메소드

  1. HEAD: GET과 동일하지만 메시지 부분을 제외하고, 상태 줄과 헤더만 반환
  2. OPTIONS: 대상 리소스에 대한 통신 가능 옵션을 설명(주로 CORS에서 사용)
  3. CONNECT: 대상 자원으로 식별되는 서버에 대한 터널을 설정
  4. TRACE: 대상 리소스에 대한 경로를 따라 메시지 루프백 테스트를 수행

전체코드

import requests
import re
from bs4 import BeautifulSoup

url = "https://www.coupang.com/np/search?q=%EB%85%B8%ED%8A%B8%EB%B6%81&channel=user&component=&eventCategory=SRP&trcid=&traid=&sorter=scoreDesc&minPrice=&maxPrice=&priceRange=&filterType=&listSize=36&filter=&isPriceRange=false&brand=&offerCondition=&rating=0&page=1&rocketAll=false&searchIndexingToken=1=6&backgroundColor="
headers = {"User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36"}
res = requests.get(url, headers=headers)
res.raise_for_status()

soup = BeautifulSoup(res.text, "lxml")

items = soup.find_all("li", attrs={"class": re.compile("^search-product")})
print(items[0].find("div", attrs={"class": "name"}).get_text())

0개의 댓글