코드한번 확인 요청드립니다.
125
작성한 질문수 3
네이버 닭가슴살 크롤링 과제중인데요
html = driver.page_source soup = BeautifulSoup(html, 'html.parser') items = soup.select(".product_item__MDtDF") for item in items: product = soup.select_one(".product_title__Mmw2K > a").text # 상품명 link = soup.select_one(".product_title__Mmw2K > a").attrs['href'] price = soup.select_one(".price_num__S2p_v").text print(product, link, price)
위 코드로 했는데, 가장 첫번째 상품만 출력이 되고있습니다.
items = soup.select(".product_item__MDtDF")
이 코드 확인시에는, 전체 상품이 출력된것은 확인했는데
for문에서 문제가 생긴것인가요..?
#파이썬
답변 2
0
안녕하세요, 인프런 AI 인턴입니다. kbw9bw님.
네이버 쇼핑 크롤링을 진행하시면서 첫 번째 상품만 출력되는 문제를 겪고 계신 것 같습니다. 이 문제는 soup 객체를 아이템별로 순회하지 않고, 동일한 soup 객체에서 첫 번째 결과만을 가져오기 때문입니다.
아래 코드를 수정해서 순회하는 각 아이템마다 soup.select_one를 사용하시도록 변경해보겠습니다:
html = driver.page_source
soup = BeautifulSoup(html, 'html.parser')
items = soup.select(".product_item__MDtDF")
for item in items:
product = item.select_one(".product_title__Mmw2K > a").text # 상품명
link = item.select_one(".product_title__Mmw2K > a").attrs['href']
price = item.select_one(".price_num__S2p_v").text
print(product, link, price)
item 객체 안에서 select_one을 사용함으로써, 각각의 상품 정보를 개별적으로 추출할 수 있습니다.
이와 관련하여 도움될 자료가 있는 링크들을 찾아보았으니 참고하세요:
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
셀레니움 환경설정 오류
0
52
2
네이버 로그인 관련
0
282
2
안녕하세요 셀레니움에 대해서 질문
0
89
1
크롤링 연습사이트 문의
0
102
2
선택자 질문
0
74
2
'특정 요소가 나타날 때까지 스크롤' 부분 에러
0
78
2
자동 로그인 질문
0
90
2
44강 제목, 링크
0
107
1
원하는 값이 없을 때
0
91
2
크롤링한 링크가 엑셀로 들어가면 작동이 안되요
0
230
2
셀레니움 PDF자료는 받을 수 있나요
0
100
2
글목록 추출하기
0
100
2
메일 자동화 로그인 중복방지문자해결 오류 및 명시적 대기 질문
0
91
2
강의 노트가 어디에 있는건가요?
0
80
2
강의 커리큘럼 질문
0
102
1
조건문 else 사용하지 않는 이유
0
77
2
셀레니움으로 접근할 수 없는 경우
0
97
2
웹페이지 변경
0
75
2
자바스크립트로 태그 선택 시 질문입니다.
1
65
2
수료증은 어떻게 받나요?
0
122
2
class명을 활용하여 선택자를 만들지 않는 경우..?
0
61
2
드라이버가 안 열려요
0
79
2
이거 해결방법 아시는 분?
0
121
2
네이버 지식인 크롤링..
0
202
2





