Notice
Recent Posts
Recent Comments
Link
250x250
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | 7 |
| 8 | 9 | 10 | 11 | 12 | 13 | 14 |
| 15 | 16 | 17 | 18 | 19 | 20 | 21 |
| 22 | 23 | 24 | 25 | 26 | 27 | 28 |
Tags
- JQuery
- 프로그래머스
- 알고리즘
- 네트워크
- 정렬알고리즘
- 하루코딩
- Spring
- 챗지피티
- HTTP
- 파이썬
- Python
- ChatGPT
- 탐욕알고리즘
- codingtest
- 그리디알고리즘
- API
- 서버
- HTTP상태
- javascript
- SQLD
- java
- 개발자
- 자바
- SQLP
- 개발
- 백준
- jsp
- 코딩테스트
- SQL
- 알고리즘코딩테스트
Archives
- Today
- Total
개발자's Life
[Python] 아마존 베스트셀러 페이지 웹 크롤링하기 본문
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
'Back-end > Python' 카테고리의 다른 글
| [Python] 아마존 웹 크롤링, Bard(바드) API사용하여 워드프레스 게시글 올리기 - Rowen Jobs (1) | 2023.08.04 |
|---|---|
| [Python] ChatGPT 를 이용하여 워드프레스 게시글 자동업로드_키워드는 식품안전나라 API 사용 (5) | 2023.08.02 |
| [Python] Bard(좀 편법..) 를 이용하여 Bard 사용해보기 (0) | 2023.08.01 |
| [Python] ChatGPT API 를 이용하여 ChatGPT 사용해보기 (0) | 2023.07.31 |
| [Python] 워드프레스 자동 게시글 올리는 코드 작성(자동화) (0) | 2023.07.28 |
Comments