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
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 상품들을 엑셀에 저장할 수 있습니다.
감사합니다.
잔재미코딩 드림
2024. 07. 25. 17:10