inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[신규 개정판] 이것이 진짜 크롤링이다 - 실전편 (인공지능 수익화)

쿠팡 검색 후 제품명 가져오기 오류

557

김세종

작성한 질문수 4

1

'''
아래 키워드별로 순위, 브랜드명, 제품명, 가격, 상세페이지링크를 엑셀에 저장하기(1~100위 까지)
[게이밍마우스, 기계식 키보드, 27인치 모니터]

※ 주의사항
 - 광고 상품은 제외한다 (AD라고 표기됨)
 - 브랜드명이 없거나 이상하면 빈칸
'''
import requests
from bs4 import BeautifulSoup
import time
import pyautogui

# 헤더에 User-Agent, Accept-Language 를 추가하지 않으면 멈춥니다
header = {
    'Host': 'www.coupang.com',
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:76.0) Gecko/20100101 Firefox/76.0',
    'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8',
    'Accept-Language': 'ko-KR,ko;q=0.8,en-US;q=0.5,en;q=0.3',
}

url = f'https://www.coupang.com/np/search?component=&q=%EA%B2%8C%EC%9D%B4%EB%B0%8D+%EB%A7%88%EC%9A%B0%EC%8A%A4&channel=user'
response = requests.get(url, headers=header)
html = response.text
soup = BeautifulSoup(html, 'html.parser')
items = soup.select("div.descriptions-inner")

for item in items :
    name = soup.select_one("div.name").text
    print(name)
    

쿠팡 첫페이지에서 '게이밍 마우스' 검색하여 각 상품별 이름을 가져오는 코드를 작성했는데요.

(강의에서처럼 상품별 url에 들어가서 가져오는 것이 아닌, 검색 완료 페이지에서 바로 가져오기)

각 상품별로 div의 descriptions-inner tag를 가지고있고 div의 name tag를 가지고있어 해당 방법으로 가져오기를 해봤습니다.

위와 같이 실행을 하면 상품별 이름을 가져오기는 하는데 해당 페이지내 랜덤한 상품명이 하나로 쭉 나오는데... 어디서 잘못된걸까요?

(결과는 아래 처럼 페이지중 하나의 상품명이 쭉나옵니다.)

로지텍코리아 (정품) 로지텍 G502 X PLUS 무선 게이밍 마우스, 블랙

로지텍코리아 (정품) 로지텍 G502 X PLUS 무선 게이밍 마우스, 블랙

로지텍코리아 (정품) 로지텍 G502 X PLUS 무선 게이밍 마우스, 블랙

로지텍코리아 (정품) 로지텍 G502 X PLUS 무선 게이밍 마우스, 블랙

로지텍코리아 (정품) 로지텍 G502 X PLUS 무선 게이밍 마우스, 블랙

로지텍코리아 (정품) 로지텍 G502 X PLUS 무선 게이밍 마우스, 블랙

 

python 웹-크롤링

답변 1

1

스타트코딩

어떤 태그 객체에 select_one을 써야하는지

잠시 생각해 보세요..!

 

 

 

 

 

 

 

 

 

 

 

 

생각해 보셨나요?

 

  1. 전체 페이지 내에서 찾는다면 -> soup

  2. 각 덩어리 태그에서 찾는다면 -> item


즉, item을 써야지 46개의 상품에 대해서 찾아 집니다

 

0

김세종

감사합니다.

말씀해주신대로 soup에서 item으로 변경했는데 한가지 문제점이 있는거 같습니다.

현재 쿠팡에서 게이밍 마우스로 검색을 하면 아래와 같이 검색이 되는데

image이를 기반으로 코드를 짜면 아래 처럼 실제 검색되는 순서와 다르게 출력이 되는데 (광고 상품을 제외하지 않았기 때문에 보이는 순서대로 나올것으로 예상했습니다.)

image코드에서 어떤 문제가있는걸까요..?

0

스타트코딩

실제 사이트에 보이는 순서와

파이썬으로 크롤링한 순서는 다를 수 있습니다.

(다른 컴퓨터로 접속했을 때 순서가 다르게 보이는 것을 생각해보세요)

셀레니움 환경설정 오류

0

45

2

네이버 로그인 관련

0

252

2

안녕하세요 셀레니움에 대해서 질문

0

85

1

크롤링 연습사이트 문의

0

95

2

선택자 질문

0

71

2

'특정 요소가 나타날 때까지 스크롤' 부분 에러

0

76

2

자동 로그인 질문

0

86

2

44강 제목, 링크

0

105

1

원하는 값이 없을 때

0

89

2

크롤링한 링크가 엑셀로 들어가면 작동이 안되요

0

227

2

셀레니움 PDF자료는 받을 수 있나요

0

100

2

글목록 추출하기

0

97

2

메일 자동화 로그인 중복방지문자해결 오류 및 명시적 대기 질문

0

88

2

강의 노트가 어디에 있는건가요?

0

80

2

강의 커리큘럼 질문

0

97

1

조건문 else 사용하지 않는 이유

0

76

2

셀레니움으로 접근할 수 없는 경우

0

95

2

웹페이지 변경

0

70

2

자바스크립트로 태그 선택 시 질문입니다.

1

64

2

수료증은 어떻게 받나요?

0

117

2

class명을 활용하여 선택자를 만들지 않는 경우..?

0

60

2

드라이버가 안 열려요

0

79

2

이거 해결방법 아시는 분?

0

121

2

네이버 지식인 크롤링..

0

201

2