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

서나 Suna님의 프로필 이미지

작성한 질문수

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

크롤링과 업무 자동화 기술: 네이버 Open API 활용, 네이버쇼핑 엑셀 보고서 만들기

크롤링해서 엑셀로 넣는 걸 만들어 봤는데..

24.07.24 20:28 작성

·

59

0

- 본 강의 영상 학습 관련 문의에 대해 답변을 드립니다. (어떤 챕터 몇분 몇초를 꼭 기재부탁드립니다)
- 이외의 문의등은 평생강의이므로 양해를 부탁드립니다
- 현업과 병행하는 관계로 주말/휴가 제외 최대한 3일내로 답변을 드리려 노력하고 있습니다
- 잠깐! 인프런 서비스 운영(다운로드 방법포함) 관련 문의는 1:1 문의하기를 이용해주세요.

import requests

from bs4 import BeautifulSoup

import openpyxl

excel_file=openpyxl.Workbook()

excel_sheet=excel_file.active

excel_sheet.append(["rank","name","date"])

res=requests.get("https://davelee-fun.github.io/")

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

data1=soup.select("section.featured-posts")

for index,A in enumerate(data1):

product_name=A.select_one("h4.card-text")

product_date=A.select_one("span.post-date")

excel_sheet.append([index+1,product_name.get_text(),product_date.get_text()])

excel_file.save("oh.xlsx")

excel_file.close()

--------------------------------------------

일단 이게 제가 만든겁니다.

All stories에 있는 목록이 아닌

featured에 있는 4개의 상품목록만 리스트로 엑셀에

상품이름과 상품날짜를 넣어서 만들고 싶었습니다.

오류는 나지 않았고 엑셀로 들어가보면

제일 처음에 있는 상품 1개만 뜨고 나머지 하위 3개는 안뜨네요 ㅠㅠ 뭐가 잘못된걸까요?



1

상품명: 보몽드 순면스퀘어 솔리드 누빔매트커버, 다크블루

05 Jun 2020

답변 1

0

잔재미코딩 DaveLee님의 프로필 이미지

2024. 07. 25. 10:08

안녕하세요. 답변 도우미입니다

우선 본 강의 내용에 대한 질문/답변 외에, 각자 작성하시는 코드를 디버깅해드리거나, 함께 작업해드리는 것은 아무래도 본 강의가 평생 강의이기도 해서, 무리가 있어요. 이 부분은 양해부탁드려요.

각자 작성하신 코드라 저희도 한참 코드를 이해해봐야 하고, 개발을 해봐야 하거든요 ㅎㅎ 가볍게만 의견을 드리면,

 

작성하신 코드에서 data1에 대해 enumerate를 사용하고 있지만, data1에는 section.featured-posts가 한 개만 있어서 반복문이 제대로 작동하지 않을 가능성이 큽니다. section.featured-posts 섹션 내에서 각각의 상품을 선택해야 합니다. 이를 위해 다음과 같이 코드를 수정해 보세요.

```python

import requests

from bs4 import BeautifulSoup

import openpyxl

# 엑셀 파일 생성

excel_file = openpyxl.Workbook()

excel_sheet = excel_file.active

excel_sheet.append(["rank", "name", "date"])

# 웹 페이지 요청

res = requests.get("https://davelee-fun.github.io/")

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

# featured-posts 섹션 선택

featured_section = soup.select_one("section.featured-posts")

# 각 상품 선택

products = featured_section.select("div.card")

# 상품 정보를 엑셀에 추가

for index, product in enumerate(products):

product_name = product.select_one("h4.card-text")

product_date = product.select_one("span.post-date")

excel_sheet.append([index + 1, product_name.get_text(), product_date.get_text()])

# 엑셀 파일 저장

excel_file.save("oh.xlsx")

excel_file.close()

```

위 코드에서는 section.featured-posts 섹션 내의 div.card 요소들을 선택하여 각 상품의 이름과 날짜를 추출합니다. 이를 통해 모든 featured 상품들을 엑셀에 저장할 수 있습니다.

감사합니다.

잔재미코딩 드림

서나 Suna님의 프로필 이미지
서나 Suna
질문자

2024. 07. 25. 17:10

답변 감사드립니다! 정말 도움이 됬어요.강의 항상 잘보고 있습니다. 좋은 질의 강의 저렴하게 볼수 있게 해주셔서 너무 감사드려요. 항상 행복하세요.