회고록

👩🏼‍💻TIL : 4. Web Scraping vs Web Crawling: What’s the Difference?

NOHCODING 2022. 8. 16. 16:56
반응형

 

1. Web Scraping

웹 페이지에서 우리가 원하는 부분의 데이터를 수집해오는 것을 뜻합니다. 한국에서는 같은 작업을 크롤링 crawling 이라는 용어로 혼용해서 쓰는 경우가 많습니다. 

 

(1)  Web Scraping process

① request - response

② Parse and Extract

③ Download Data

 

(2) Web Scraping Tools

  1. RroWebScraper

  2. 크롬 익스텐션 WebScrapper.io(https://webscraper.io/)

 

(3) Web Scraping는 어디에 사용될까?

① 머신러닝 - 머신러닝은 많은 데이터를 공급해야합니다. 이런 데이터를 웹 스크래핑을 통해 모등 종류의 웹 데이터를 안정적인 방식으로 받기 때문에 기계 학습에 필수적입니다.

②웹 스크래핑은 전자 상거래 비즈니스에서 다양한 이미지와 제품 설명을 추출하는 데 매우 유용함

 

 

2. Web Crawling

원래는 크롤링은 자동화하여 주기적으로 웹 상에서 페이지들을 돌아다니며 분류/색인하고 업데이트된 부분을 찾는 등의 일을 하는 것입니다.

 

(1) Web Crawling Tools

  1. 스크랩 (https://scrapy.org/)

웹사이트 크롤링에 널리 사용되는 고품질 웹 크롤링 및 스크래핑 프레임워크입니다. 데이터 마이닝, 데이터 모니터링, 자동화 테스트 등 다양한 용도로 사용할 수 있습니다.

  2. 아파치 너치(https://nutch.apache.org/)

Apache Nutch 는 확장에 사용할 수 있는 매우 유용한 웹 크롤러 소프트웨어 프로젝트입니다. 특히 데이터 마이닝 분야에서 널리 사용됩니다. 데이터 분석가, 데이터 과학자, 응용 프로그램 개발자 및 웹 텍스트 마이닝 엔지니어는 다양한 응용 프로그램에 광범위하게 사용합니다. JAVA로 작성된 크로스 플랫폼 솔루션입니다.

 

(2)Web Crawling은 어디에 사용될까?

Google은 검색 결과를 제공하기 위해 매일 약 250억 개 이상의 페이지를 크롤링합니다. 웹 크롤러는 사용자가 찾고 있는 결과를 생성하기 위해 수십억 개의 웹 페이지를 크롤링합니다. 변화하는 사용자 요구에 따라 웹 크롤러도 이에 적응해야 합니다 웹 크롤러는 페이지를 정렬하고 콘텐츠 품질을 평가하며 최종 결과로 인덱싱을 수행하기 위해 다른 많은 기능을 수행합니다. 따라서 웹 크롤러는 검색 엔진의 기능, World Wide Web에 대한 액세스에 필수적이며 웹 스크래핑의 첫 번째이자 가장 중요한 부분이기도 합니다. 

 

 

3. 파이썬으로 Web Scraping 해보기 

(0) 스크래핑할 데이터는 바로 CU의 식품! 해당 URL 마지막의 gdIdx를 10개까지 구해보려고 한다.

https://cu.bgfretail.com/product/view.do?category=event&gdIdx=1 

 

CU

24시간 편의점, 편의점 프랜차이즈, 편의점택배, 택배, 상품안내, 가맹 시스템, 창업 상담 제공.

cu.bgfretail.com

 

(1) 스크래핑을 편리하게 해줄 beautifulsoup4를 설치한다.

  터미널에 아래 문구 입력

pip install beautifulsoup4

 

(2) 코드 

import requests
from bs4 import BeautifulSoup

# 타겟 URL을 읽어서 HTML를 받아오고,
headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}


food_list =[]

for i in range(1, 10):
    food_dict = {}
    data = requests.get(f'https://cu.bgfretail.com/product/view.do?category=event&gdIdx={i}',headers=headers)
    soup = BeautifulSoup(data.text, 'html.parser')
    food = soup.select_one('.prodDetail .prodDetail-e > p').text

    price = soup.select_one('.prodInfo > dl dd.prodPrice > p > span').text

    explain = soup.select_one('.prodInfo dl dd > ul.prodExplain > li').text

    food_dict['name'] = food
    food_dict['price'] = price
    food_dict['explain'] = explain
    food_list.append(food_dict)


print(*food_list)
더보기

{'name': '도)갈릭&양념치킨정식', 'price': '3,300', 'explain': '갈릭&양념치킨: -갈릭치킨: 향긋한 마늘소스에 치킨이 그대로 버무려진 상품/아몬드 슬라이스 추가'} {'name': '도)더블BIG정식', 'price': '3,900', 'explain': '1. 2단 형태의 정식 도시락:下단 밥(완두콩, 옥수수토핑), 上단 반찬(7찬 구성)  2. 반찬구성:총 7찬     구성1: 계란장조림, 양파&홍/청피망볶음, 볶음김치     구성2: 핫소시지, 치즈소시지, 새우튀김(머스타드소스 별첨)     구성3: 불갈비데리볶음'} {'name': '도)더블BIG요일정식', 'price': '3,900', 'explain': '더블BIG정식 2탄 : 요일별 구성이 다른 상품 운영   \r\n1) 월, 화 : 소불고기,가라아게, 생선튀김, 치즈소시지   \r\n2) 수, 목 : 제육볶음, 가라아게, 햄&계란구이, 떡갈비   \r\n3) 금, 토, 일 : 닭갈비, 가라아게, 새우튀김, 미트볼\t'} {'name': '도)뉴고추장삼겹살구이', 'price': '3,300', 'explain': '* 국민 모두가 좋아하는 삼겹살을 도시락으로 구성한 상품    * 매콤달콤 고추장 양념을 삼겹살 한장한잘 발라서 구운 상품'} {'name': '도)스팸구이', 'price': '3,300', 'explain': '국민 모두가 좋아하는 오리지날 "스팸"과 최고의 궁합 달걀후라이!  어묵볶음과 볶음김치 구성 \'\'고추장삼겹살구이\'\' 에 이은 종이박스 2탄'} {'name': '도)통등심돈가스정식', 'price': '3,800', 'explain': '두툼한 돈까스와 피클,볶음김치로 구성'} {'name': '도)더블BIG스테이크', 'price': '3,600', 'explain': '1. 도시락 1위 상품!! 더블BIG도시락 형태 추가 상품  2. 건강하고, 프리미엄 원재료 / 푸짐한 양 그대로!!   - 함박스테이크&스파게티   - 스크램블마요, 포테이토튀김   - 모둠 야채 : 브로컬리, 컬리플라워, 미니당근   - 새우튀김&타르타르 소스'} {'name': '도)깐풍기&고추잡채정식', 'price': '3,600', 'explain': '맛있게 매운 깐풍기!  꽃빵과 먹을 수 있는 고추잡채!  다진돼지고기가 있는 짜장소스!'} {'name': '도)뉴소불고기정식', 'price': '3,000', 'explain': '대표도시락 소불고기정식 업그레이드! 합리적 가격! 푸짐한 한끼 식사!   '}

 

출처 :https://dzone.com/articles/web-scraping-vs-web-crawling-whats-the-difference

 

Web Scraping vs Web Crawling: What’s the Difference? - DZone Web Dev

In this article, read an explanation of the differences between web scraping and web crawling.

dzone.com

Web Scraping(wikipedia) / Web Crawler(wikipedia)

반응형