{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "## 실제 사이트 크롤링 - 쿠팡 쇼핑몰" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import bs4\n", "import requests as rq\n", "import pandas as pd" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### 1. 사이트에 접속하고 탐색해 본다:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "1. 먼저 다음 사이트에 들어가서 살펴본다: [쿠팡 과일](http://www.coupang.com/np/categories/420186)\n", "2. 크롬에서 3점 메뉴 버튼을 누르고 **도구 더보기** ==> **개발자 도구**를 선택해서 개발자 도구를 연다.\n", "3. 개발자 도구 왼쪽 상단의 화살표 버튼을 눌러서 사이트 일부를 서택하고 해당 HTML코드를 볼 수 있다. \"[CTRL] + [SHIFT] + C\" 조합으로 대체할 수 있다." ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# 웹사이트의 URL에 접속.\n", "# Headers 필요.\n", "my_url = \"http://www.coupang.com/np/categories/420186?page=\"\n", "my_headers = {\"User-Agent\": \"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36\"}\n", "res = rq.get(url = my_url+str(1),headers = my_headers) # page 1 접속." ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "200" ] }, "execution_count": 3, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# status_code가 200이면 OK.\n", "# status_code가 4xx이면 접속 오류.\n", "res.status_code" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "my_html = res.content\n", "my_soup = bs4.BeautifulSoup(my_html, 'html.parser') # BeautifulSoup 객체 반환. 'html.parser' 사용." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "
\n", " | Product | \n", "Price | \n", "
---|---|---|
0 | \n", "GAP 농협 노지감귤, 5kg, 1박스 | \n", "15700.0 | \n", "
1 | \n", "곰곰 당도선별 세척사과, 2kg, 1박스 | \n", "8880.0 | \n", "
2 | \n", "곰곰 당도선별 청송사과, 1.5kg, 1봉 | \n", "5980.0 | \n", "
3 | \n", "프레샤인 사과 특, 5kg(16~20입), 1박스 | \n", "17900.0 | \n", "
4 | \n", "농협 햇꼬마사과, 2.5kg(11~14내), 1박스 | \n", "11900.0 | \n", "
... | \n", "... | \n", "... | \n", "
477 | \n", "볶음 피땅콩, 600g, 1개 | \n", "19690.0 | \n", "
478 | \n", "스미후루 바나플 바나나, 350g, 1개 | \n", "5900.0 | \n", "
479 | \n", "air 태국왕망고, 480g, 1개 | \n", "10580.0 | \n", "
480 | \n", "리치스 밸리 후레쉬 딸기 가당 (냉동), 1㎏, 1개 | \n", "5730.0 | \n", "
481 | \n", "스미후루 순 유기농 바나나, 1200g, 1개 | \n", "6360.0 | \n", "
482 rows × 2 columns
\n", "