개발자's Life

[Python] 아마존 베스트셀러 페이지 웹 크롤링하기 본문

Back-end/Python

[Python] 아마존 베스트셀러 페이지 웹 크롤링하기

Rowen Jobs 2023. 8. 3. 06:00
728x90
반응형
from bs4 import BeautifulSoup
import requests

# 베스트셀러 Url 과 header 부분에서 웹으로 접속하는 부분과 동일하게 Mozilla/5.0 으로 셋팅해줍니다.
soup = requests.get("https://www.amazon.com/Best-Sellers/zgbs", headers={'User-agent' : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'})

# BeautifulSoup 라이브러리를 이용하여 Html 파싱합니다. 여기까지 데이터를 긁어 온 상태입니다.
html = BeautifulSoup(soup.text, 'html.parser')

# 여기부턴 어떤 웹 페이지든 개발자도구로 확인해 찾아보며 진행해야 합니다.
categoris = html.select('div.a-column.a-span8')

# 여러 카테고리가 있고 여러개의 카테고리를 배열에 담습니다
categoris_list = []
for category in categoris :
    categoris_list.append(category.text)

divs = html.select('div.a-carousel-row-inner')

for div in divs:

    lis = div.select('li.a-carousel-card')
    for li in lis :
        num = li.select_one('span.zg-bdg-text').text
        title = li.select('a.a-link-normal')[1].text
        url = 'https://www.amazon.com' + li.select('a.a-link-normal')[1]['href']
        img_url = li.select('a.a-link-normal')[0].select('div._cDEzb_noop_3Xbw5')[0].select('img.p13n-product-image')[0]['src']
        rating = li.select('a.a-link-normal')[2].text
        pricing = li.select('a.a-link-normal')[3].text

        soup2 = requests.get(url , headers={'User-agent' : 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36'})
        html2 = BeautifulSoup(soup2.text, 'html.parser')
        main_div = html2.select('div.a-container')
        top_id = main_div[0].select('div.a-section')[0]
        top_div = top_id.select('div.a-row')[1]
        print('=' * 100)
        print(top_div)
        print('=' * 100)

        # print(num, rating, title, pricing, sep='\t')
        # print(img_url)
        # print(url)

    
    categoris_list.pop()


print('finish')

우선 크롤링은 웹 페이지에 있는 Html 태그로 구성된 정보들을 분석하여 필요한 데이터를 긁어 오는 작업입니다. 

 

이전 Java 로 크롤링을 했었는데 확실히 파이썬 코드가 자바에 비하면 덜 복잡한 구조라 훨씬 이해하기 쉬웠던거 같습니다. 

(크롤링 기술 자체적으로는 말이 많으니 크롤링하는 웹 사이트 잘 확인하시고 진행하시길!!)

 

아래 유튜브 코드 참고하여 진행하였고 필요한 부분 img_url 부분 수정하였습니다. 

 

728x90
Comments