본문 바로가기

Skillset/Data Engineering5

[Python Crawling] 크롤링 웹사이트 밑으로 내리기 - window height, scrollheight 저번 포스팅에서는 네이버 쇼핑 페이지에서 '샤인머스캣'을 검색한 후, 해당 페이지에 있는 판매자 정보를 크롤링해보았다. 하지만 저번에 했던 방법에서 보완할 부분이 있었는데, 그것은 바로 전체 페이지에 나온 상품이 전부 크롤링되지 않는다는 점이었다. 위 이미지는 내가 크롤링하려고 하는 화면이다. 자세히 보면, 검색 결과를 "40개씩 보기"로 필터링을 해 두었기에 한 화면에 상품이 40개씩 나오지만 저번 포스팅에서 만든 코드를 돌려 보면 5개의 상품만이 뽑혔다. 2024. 2. 29.
[Python Crawling] 네이버 쇼핑 검색결과 크롤링하기 (3) - 네이버 API 활용하기 저번 포스팅까지는 네이버 쇼핑 검색결과를 Selenium, Beautifulsoup 라는 파이썬 패키지를 활용하여 크롤링하였다. 이렇게 크롤링한 결과도 꽤 괜찮았지만, 여기엔 3가지 문제가 있었다. 첫번째, 중간에 안 긁어지는 부분이 있다. ➡️ 검색결과 로딩이 느려 안 긁어와지는 부분은, 페이지를 맨 끝까지 내리는 방법으로(관련 포스팅) 해결하였다. 그러나 이 외에도 검색결과를 많이 수집하는 경우(검색 결과 페이지를 5페이지 이상) 중간에 안 긁히는 부분이 발견되었다. 두번째, 이미지를 긁어오기 어렵다. 마지막으로, 많은 양을 크롤링하는 경우 시간이 많이 걸린다. 그래서 이번 장에서는 네이버 개발자센터에서 제공하는 네이버 API를 활용하는 방법을 포스팅한다. 앞서 이야기한 3가지 방법을 이 방법으론 전.. 2024. 2. 29.
[Airflow] DAG에 스케줄 거는 방법 (DAG schedule_interval Setting) 데이터 엔지니어링에서 자동화 배치를 만들기 위해 Airflow를 자주 사용한다. 하나의 배치를 DAG이라 하는데, 배치를 만들면 당연히 자동적으로 수행하게 만들어야 한다. 이번 포스팅에선 dag을 자동적으로 실행하기 위해 스케쥴을 거는 방법을 살펴보자. 보통 DAG에 스케쥴을 거는 데에는 다음의 코드를 사용한다. 어떤 의미인지 하나씩 알아보자. with DAG(dag_id=DAG_ID, default_args=args, start_date=datetime(2021, 1, 1, 0, 0, 0), schedule_interval="0 0 * * *", catchup=False ) as dag: start_date: DAG의 시작 지점 execution_date: 해당 Task가 실행하고자 하는 Time wi.. 2024. 1. 8.
[Python Crawling] 네이버 쇼핑 검색결과 크롤링하기 (2) - Selenium, BeautifulSoup 저번 포스팅에서는 Python selenium, beautifulsoup를 활용하여 네이버 쇼핑에서 '샤인머스캣'을 검색한 결과 중 제목을 뽑아오는 데에 성공했다. 이번 포스팅에서는 판매자, 가격, 등록일, 상품 URL 정보를 뽑아보자! 이번에 사용하는 방법도 아까 전에 사용한 방법과 크게 다르지 않다. 크롬 개발자모드로 들어가 html을 보면서 beautifulsoup(bs) 를 활용해 값을 하나씩 쏙쏙 뽑아오면 된다. 먼저 전체 상품 40개(1페이지에 있는 상품이 40개이므로)에 대한 정보를 담은 'goods_list'를 만든다. 이는 이전 포스팅에서도 나왔지만 전체상품 정보가 있는 html 클래스 이름이 li.basicList_item__0T9JD 이므로 사용해주었다. soup = Beautiful.. 2022. 11. 22.
[Python Crawling] 네이버 쇼핑 검색결과 크롤링하기 (1) - Selenium, BeautifulSoup 최근 파이썬으로 크롤링할 일이 생겼는데, 여러 방법을 동원하며 얻은 새로운 정보들이 있어서 이를 정리할 겸, 공유 목적으로 포스팅해보고자 한다 :) 내가 크롤링한 페이지는 네이버 쇼핑 검색 결과 페이지인데, 얻고자 한 결과물은 다음과 같은 엑셀 파일이었다. 네이버 쇼핑 페이지에 '샤인머스캣'을 치고, "리뷰 많은순"으로 정렬해서 나온 값을 뽑았다. 내가 원하는 정보는 이런 값들이었다. 상품명 판매처에서 올린 이미지 판매처 판매처 판매가 상품 URL 그리고 다음과 같은 시행착오를 거쳤다. 먼저 파이썬 Selenium, BeautifulSoup를 활용하여 자동화된 크롬 창을 띄워놓고 긁어오는 방식을 사용 장점: 가장 간단하고 많이 알려진 방식 단점: 정보가 중간에 안 긁어지는 케이스가 있다. (그 이유는 포.. 2022. 11. 21.