인프런 커뮤니티 질문&답변

Jaewoo Jin님의 프로필 이미지
Jaewoo Jin

작성한 질문수

파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)

직접 작성해보며 익숙해지기: 크롤링 기본 연습문제 풀기 (업데이트)

로드해야 추가로 나타나는 제품들은 어떻게 크롤링 하나요?

작성

·

352

0

안녕하세요:)

질문 드립니다.

www.abc.com/shoes

라는 카테고리에 제품이 100개가 들어 있다고 가정하고 

처음에는 브라우저상에 20개만 보여주고, 이후 스크롤 하면 20개씩 추가로 제품이 나타납니다. 제품이 스크롤해서 나타나도 페이지 url은 동일하게 유지됩니다. 이런 경우에 브라우저상에 보이는 제품 20개 말고 제품을 100까지 끌어오는 방법이 궁금합니다. 

답변 2

0

Jaewoo Jin님의 프로필 이미지
Jaewoo Jin
질문자

빠른 답변 정말 감사합니다:) 

아래 사이트가 스크롤하면 제품이 추가 되는 방식이고요, 해당 페이지도 말씀하신 방법을 배우고 해야 하는건지 아니면 다른 간단한 방법이 있는건지가 궁금하네요:) 

import requests

from bs4 import BeautifulSoup

res = requests.get("https://www.converse.co.kr/category/shoes")

soup = BeautifulSoup(res.content, "html.parser")

data = soup.select("div.product-tile-details")

prd_list = list()

for index, item in enumerate(data):

    data2 = item.select_one('a.text-link').get_text()

    data3 = item.select_one('span.sale').get_text()

    data4 = "https://www.converse.co.kr" + item.select_one('a.text-link')['href']

    res2 = requests.get(data4)

    soup2 = BeautifulSoup(res2.content, 'html.parser')

    modelinfo = soup2.select_one('span.product-id')

    prd_list.append([index + 1,data2,data3,modelinfo.get_text()])

    

    

    

import openpyxl

excel_file = openpyxl.Workbook()

excel_sheet = excel_file.active

excel_sheet.append(["no","상품명","가격","모데명"])

for i in prd_list:

    excel_sheet.append(i)

    

excel_file.save('converse.xlsx')

excel_file.close()

감사합니다^^

0

안녕하세요. 웹페이지를 구현하는 다양한 기술이 있고, 이 중에 말씀하신 기술은 SPA (Single Page Application) 라는 기술이예요. 단일 주소에서 모든 내용이 표시되는 것인데요. 스크롤하면서 표현되는 부분들은 동적으로 데이터가 웹페이지에 붙여지게 되요. 이 부분을 동적 페이지라고 하는데요. 이 부분은 사실 쉽지 않아요. 왜냐하면 각 웹페이지마다 해당 페이지에 맞게 크롤링을 해야해서, 어느 특정한 패턴 코드를 만들 수도 없거든요.

동적 웹페이지는 selenium 기술을 사용해야 해요. 이외에도 몇 가지 기술이 있는데, 여러 테스트를 해봤을 때, 이 기술이 그나마 가장 안정성이 있었고요. 다음 강의에서 동적 페이지를 크롤링하는 기술에 대해 강의를 진행하고 있습니다. 다만 중급 강의예요.

IT 기술에 대해 강의를 오픈할 때는 모두들 누구나~ 할 수 있다고 이야기하지만, 분명 단계가 있어요. 파이썬 입문과 크롤링 기초 부트캠프 강의 내용을 어느 정도 익히고 활용할 수 있는 수준이 되어야, 다음 기술을 익힐 수 있어요. 이 부분은 예전에 저처럼 시행착오를 하시지 않도록 말씀드려요. 감사합니다.

https://www.inflearn.com/course/Crawling-Scrapy-Selenium

Jaewoo Jin님의 프로필 이미지
Jaewoo Jin

작성한 질문수

질문하기